Junior
CREATE TABLE orders ( driver_id varchar, city varchar, order_id varchar ); -- Λάβετε τους 10 κορυφαίους οδηγούς ανά αριθμό παραγγελιών σε κάθε πόλη
sobes.tech AI
Απάντηση από 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.