Sobes.tech
Junior

Analiza vânzărilor pe categorii de produse într-un magazin de retail Lucrați ca analist într-un magazin de retail. Sarcina dvs. este să creați un raport de vânzări pe categorii cu următoarele calcule: • numărul total de unități vândute în categorie (total_units_sold); • venitul total pe categorie, luând în considerare reducerile, unde reducerea se calculează ca unit_price × units_sold × (1 − discount/100). Dacă reducerea lipsește (NULL), se consideră 0%. Rotunjiți la două zecimale; • media unităților vândute pe vânzare (avg_units_per_sale), rotunjită la două zecimale; • proporția vânzărilor fără reducere (no_discount_share) — numărul de vânzări cu NULL sau 0% reducere, împărțit la numărul total de vânzări din categorie, rotunjit la trei zecimale. Ordonați rezultatele mai întâi după venitul total (total_revenue) descrescător, apoi după media unităților pe vânzare (avg_units_per_sale) crescător, și în final după numele categoriei în ordine alfabetică. Formatul de intrare Tabelul sales: • sale_id (int) — identificator unic de vânzare • product_id (int) — identificatorul produsului • category (text) — categoria produsului • sale_date (timestamp) — data și ora vânzării • units_sold (int) — unitățile vândute • unit_price (numeric) — prețul pe unitate • discount (numeric) — reducerea în procente, poate fi NULL Coloana discount poate conține valori nule. Formatul de ieșire Interogarea trebuie să returneze un tabel cu câmpurile în această ordine: • category (text) — categoria produsului • total_units_sold (int) — numărul total de unități vândute în această categorie • total_revenue (numeric) — venitul total pe categorie, rotunjit la două zecimale • avg_units_per_sale (numeric) — media unităților pe vânzare, rotunjită la două zecimale • no_discount_share (numeric) — proporția vânzărilor fără reducere (valoare între 0 și 1), rotunjită la trei zecimale Rezultatul trebuie sortat mai întâi după total_revenue descrescător, apoi după avg_units_per_sale crescător, și în final după numele categoriei în ordine alfabetică.

sobes.tech AI

Răspuns de la AI

sql ALEGERE categorie, SUM(unite_vandute) CAUTĂ total_unite_vandute, ROUND(SUM(preț_unitar * unite_vandute * (1 - COALESCE(reducere, 0) / 100.0)), 2) CAUTĂ venit_total, ROUND(AVG(unite_vandute), 2) CAUTĂ medie_unite_pe_vanzare, ROUND( SUM(CASE WHEN reducere ESTE NULL O SA reducere = 0 ATUNCI 1 ALTFEL 0 SFÂRȘIT) ::numeric / COUNT(*), 3 ) CAUTĂ proporție_fără_reducere DIN vânzări GRUPARE DUPĂ categorie ORDONARE DUPĂ venit_total DESC, medie_unite_pe_vanzare ASC, categorie ASC;