Sobes.tech
Junior

Verkaufsanalyse nach Produktkategorien in einem Einzelhandelsgeschäft Sie arbeiten als Analyst in einem Einzelhandelsgeschäft. Ihre Aufgabe ist es, einen Verkaufsbericht nach Kategorien mit den folgenden Berechnungen zu erstellen: • Gesamtzahl der verkauften Einheiten in der Kategorie (total_units_sold); • Gesamter Umsatz nach Kategorie, unter Berücksichtigung von Rabatten, wobei der Rabatt berechnet wird als unit_price × units_sold × (1 − discount/100). Wenn kein Rabatt vorhanden ist (NULL), wird 0% angenommen. Auf zwei Dezimalstellen runden; • Durchschnittliche verkaufte Einheiten pro Verkauf (avg_units_per_sale), auf zwei Dezimalstellen gerundet; • Anteil der Verkäufe ohne Rabatt (no_discount_share) — Anzahl der Verkäufe mit NULL oder 0% Rabatt, geteilt durch die Gesamtzahl der Verkäufe in der Kategorie, auf drei Dezimalstellen gerundet. Sortieren Sie die Ergebnisse zuerst nach dem Gesamtumsatz (total_revenue) absteigend, dann nach dem Durchschnitt der Einheiten pro Verkauf (avg_units_per_sale) aufsteigend, und schließlich nach Kategorienamen in alphabetischer Reihenfolge. Eingabeformat Tabelle sales: • sale_id (int) — eindeutige Verkaufs-ID • product_id (int) — Produkt-ID • category (text) — Produktkategorie • sale_date (timestamp) — Verkaufsdatum und -zeit • units_sold (int) — verkaufte Einheiten • unit_price (numeric) — Preis pro Einheit • discount (numeric) — Rabatt in Prozent, kann NULL sein Die Spalte discount kann NULL-Werte enthalten. Ausgabeformat Die Abfrage sollte eine Tabelle mit den Feldern in folgender Reihenfolge zurückgeben: • category (text) — Produktkategorie • total_units_sold (int) — Gesamtzahl der verkauften Einheiten in der Kategorie • total_revenue (numeric) — Gesamter Umsatz in der Kategorie, auf zwei Dezimalstellen gerundet • avg_units_per_sale (numeric) — Durchschnitt der Einheiten pro Verkauf, auf zwei Dezimalstellen gerundet • no_discount_share (numeric) — Anteil der Verkäufe ohne Rabatte (Wert zwischen 0 und 1), auf drei Dezimalstellen gerundet Das Ergebnis wird zuerst nach total_revenue absteigend sortiert, dann nach avg_units_per_sale aufsteigend, und schließlich nach Kategorie in alphabetischer Reihenfolge.

sobes.tech KI

Antwort von AI

sql AUSWÄHLEN kategorie, SUM(verkaufseinheiten) ALS gesamt_verkaufseinheiten, RUND(SUM(einheitspreis * verkaufseinheiten * (1 - COALESCE(rabatt, 0) / 100.0)), 2) ALS gesamt_einnahmen, RUND(DURCHSCHNITT(verkaufseinheiten), 2) ALS durchschnittliche_einheiten_pro_verkauf, RUND( SUM(CASE WHEN rabatt IST NULL ODER rabatt = 0 DANN 1 SONST 0 END)::numerisch / COUNT(*), 3 ) ALS anteil_ohne_rabatt VON verkäufe GRUPPIEREN NACH kategorie ORDNEN NACH gesamt_einnahmen ABSTEIGEND, durchschnittliche_einheiten_pro_verkauf AUFSTEIGEND, kategorie AUFSTEIGEND;