Junior
Ανάλυση πωλήσεων ανά κατηγορία προϊόντων σε ένα λιανεμπόριο Εργάζεστε ως αναλυτής σε ένα λιανεμπόριο. Το καθήκον σας είναι να δημιουργήσετε μια αναφορά πωλήσεων ανά κατηγορία με τους ακόλουθους υπολογισμούς: • συνολικός αριθμός πωληθέντων μονάδων στην κατηγορία (total_units_sold); • συνολικά έσοδα ανά κατηγορία, λαμβάνοντας υπόψη τις εκπτώσεις, όπου η έκπτωση υπολογίζεται ως unit_price × units_sold × (1 − discount/100). Αν η έκπτωση είναι NULL, θεωρείται 0%. Στρογγυλοποιήστε σε δύο δεκαδικά ψηφία; • μέσος όρος πωληθέντων μονάδων ανά πώληση (avg_units_per_sale), στρογγυλοποιημένος σε δύο δεκαδικά ψηφία; • ποσοστό πωλήσεων χωρίς έκπτωση (no_discount_share) — αριθμός πωλήσεων με NULL ή 0% έκπτωση, διαιρεμένος με τον συνολικό αριθμό πωλήσεων στην κατηγορία, στρογγυλοποιημένο σε τρία δεκαδικά ψηφία. Τα αποτελέσματα ταξινομήστε πρώτα κατά συνολικά έσοδα (total_revenue) σε φθίνουσα σειρά, στη συνέχεια κατά μέσο όρο μονάδων ανά πώληση (avg_units_per_sale) σε αύξουσα σειρά, και τέλος κατά όνομα κατηγορίας σε αλφαβητική σειρά. Μορφή εισόδου Πίνακας sales: • sale_id (int) — μοναδικός αναγνωριστικός αριθμός πώλησης • product_id (int) — αναγνωριστικός αριθμός προϊόντος • category (text) — κατηγορία προϊόντος • sale_date (timestamp) — ημερομηνία και ώρα πώλησης • units_sold (int) — πωληθείσες μονάδες • unit_price (numeric) — τιμή ανά μονάδα • discount (numeric) — έκπτωση σε ποσοστό, μπορεί να είναι NULL Η στήλη discount μπορεί να περιέχει κενές τιμές. Μορφή εξόδου Το ερώτημα πρέπει να επιστρέφει έναν πίνακα με τα πεδία με την ακόλουθη σειρά: • category (text) — κατηγορία προϊόντος • total_units_sold (int) — συνολικός αριθμός πωληθέντων μονάδων στην κατηγορία • total_revenue (numeric) — συνολικά έσοδα ανά κατηγορία, στρογγυλοποιημένα σε δύο δεκαδικά ψηφία • avg_units_per_sale (numeric) — μέσος όρος μονάδων ανά πώληση, στρογγυλοποιημένος σε δύο δεκαδικά ψηφία • no_discount_share (numeric) — ποσοστό πωλήσεων χωρίς έκπτωση (τιμή μεταξύ 0 και 1), στρογγυλοποιημένο σε τρία δεκαδικά ψηφία Το αποτέλεσμα ταξινομείται πρώτα κατά total_revenue σε φθίνουσα σειρά, στη συνέχεια κατά avg_units_per_sale σε αύξουσα σειρά, και τέλος κατά όνομα κατηγορίας σε αλφαβητική σειρά.
sobes.tech AI
Απάντηση από AI
sql ΕΠΙΛΕΞΤΕ κατηγορία, SUM(πωληθέντων_μονάδων) ΩΣ συνολικές_μονάδες_πωλήσεων, ROUND(SUM(τιμή_μονάδας * πωληθέντων_μονάδων * (1 - COALESCE(έκπτωση, 0) / 100.0)), 2) ΩΣ συνολικά_έσοδα, ROUND(AVG(πωληθέντων_μονάδων), 2) ΩΣ μέσο_όρο_μονάδων_ανά_πώληση, ROUND( SUM(CASE WHEN έκπτωση ΕΙΝΑΙ NULL Ή έκπτωση = 0 ΤΟΤΕ 1 ΑΛΛΙΩΣ 0 ΤΕΛΟΣ) ::numeric / COUNT(*), 3 ) ΩΣ ποσοστό_χωρίς_έκπτωση ΑΠΟ πωλήσεις ΟΜΑΔΕΥΣΤΕ_ΚΑΤΗΓΟΡΙΑ ΤΑΞΙΝΟΜΗΣΤΕ_ΑΝΑ συνολικά_έσοδα DESC, μέσο_όρο_μονάδων_ανά_πώληση ASC, κατηγορία ASC;