Sobes.tech
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.