Junior
CREATE TABLE orders ( driver_id varchar, city varchar, order_id varchar ); -- Gaukite geriausių 10 vairuotojų pagal užsakymų skaičių kiekviename mieste
sobes.tech AI
Atsakymas iš AI
Norėdami gauti 10 geriausių vairuotojų pagal užsakymų skaičių kiekviename mieste, galite naudoti SQL lango funkciją ROW_NUMBER() arba RANK(). Pavyzdinis užklausos pavyzdys:
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;
Čia mes grupuojame užsakymus pagal vairuotoją ir miestą, skaičiuojame užsakymų skaičių, tada numeruojame vairuotojus kiekviename mieste pagal mažėjantį užsakymų skaičių ir pasirenkame tik pirmuosius 10.