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