Junior
Verkoopanalyse per productcategorie in een detailhandel Je werkt als analist in een detailhandel. Jouw taak is het opstellen van een verkooprapport per categorie met de volgende berekeningen: • totaal aantal verkochte eenheden in de categorie (total_units_sold); • totale omzet per categorie, rekening houdend met kortingen, waarbij de korting wordt berekend als unit_price × units_sold × (1 − discount/100). Als er geen korting is (NULL), wordt 0% aangenomen. Afronden op twee decimalen; • gemiddelde aantal verkochte eenheden per verkoop (avg_units_per_sale), afgerond op twee decimalen; • aandeel van verkopen zonder korting (no_discount_share) — aantal verkopen met NULL of 0% korting, gedeeld door het totale aantal verkopen in de categorie, afgerond op drie decimalen. Sorteer eerst op de totale omzet (total_revenue) in aflopende volgorde, daarna op het gemiddelde aantal eenheden per verkoop (avg_units_per_sale) in oplopende volgorde, en ten slotte op de naam van de categorie in alfabetische volgorde. Invoerformaat Tabel sales: • sale_id (int) — unieke verkoop-ID • product_id (int) — product-ID • category (text) — productcategorie • sale_date (timestamp) — datum en tijd van verkoop • units_sold (int) — verkochte eenheden • unit_price (numeric) — prijs per eenheid • discount (numeric) — korting in procenten, kan NULL zijn De kolom discount kan NULL-waarden bevatten. Uitvoerformaat De query moet een tabel retourneren met de velden in deze volgorde: • category (text) — productcategorie • total_units_sold (int) — totaal aantal verkochte eenheden in deze categorie • total_revenue (numeric) — totale omzet per categorie, afgerond op twee decimalen • avg_units_per_sale (numeric) — gemiddelde aantal eenheden per verkoop, afgerond op twee decimalen • no_discount_share (numeric) — aandeel van verkopen zonder korting (waarde tussen 0 en 1), afgerond op drie decimalen Het resultaat wordt eerst gesorteerd op total_revenue in aflopende volgorde, daarna op avg_units_per_sale in oplopende volgorde, en ten slotte op de naam van de categorie in alfabetische volgorde.
sobes.tech AI
Antwoord van AI
sql KIES categorie, SUM(verkochte_eenheden) ALS totaal_verkochte_eenheden, ROUND(SUM(eenheid_prijs * verkochte_eenheden * (1 - COALESCE(korting, 0) / 100.0)), 2) ALS totale_omzet, ROUND(AVG(verkochte_eenheden), 2) ALS gemiddelde_eenheden_per_verkoop, ROUND( SUM(CASE WHEN korting IS NULL OF korting = 0 THEN 1 AND ELSE 0 END)::numeric / COUNT(*), 3 ) ALS aandeel_zonder_korting VAN verkopen GROEPEER OP categorie SORTEER OP totale_omzet DESC, gemiddelde_eenheden_per_verkoop ASC, categorie ASC;