Назад к вопросам
Junior
16
CREATE TABLE orders ( driver_id varchar, city varchar, order_id varchar ); -- Получить топ 10 водителей по кол-ву заказов в каждом городе
Компании, где спрашивали
Яндекс
Ответ от нейросети
sobes.tech AI
Для получения топ 10 водителей по количеству заказов в каждом городе можно использовать оконную функцию ROW_NUMBER() или RANK() в SQL. Пример запроса:
SELECT driver_id, city, order_count
FROM (
SELECT
driver_id,
city,
COUNT(order_id) AS order_count,
ROW_NUMBER() OVER (PARTITION BY city ORDER BY COUNT(order_id) DESC) AS rn
FROM orders
GROUP BY city, driver_id
) sub
WHERE rn <= 10
ORDER BY city, order_count DESC;
Здесь мы группируем заказы по водителю и городу, считаем количество заказов, затем нумеруем водителей в каждом городе по убыванию количества заказов и выбираем только первые 10.