Junior
Analýza predaja podľa kategórií výrobkov v maloobchode Pracujete ako analytik v maloobchode. Vašou úlohou je vytvoriť správu o predaji podľa kategórií s nasledujúcimi výpočtami: • celkový počet predaných jednotiek v kategórii (total_units_sold); • celkový príjem podľa kategórie, zohľadňujúc zľavy, kde zľava sa počíta ako unit_price × units_sold × (1 − discount/100). Ak je zľava NULL, považuje sa za 0%. Zaokrúhli na dve desatinné miesta; • priemerný počet predaných jednotiek na predaj (avg_units_per_sale), zaokrúhlený na dve desatinné miesta; • podiel predajov bez zľavy (no_discount_share) — počet predajov s NULL alebo 0% zľavou, delený celkovým počtom predajov v kategórii, zaokrúhlený na tri desatinné miesta. Usporiadajte výsledky najskôr podľa celkových príjmov (total_revenue) zostupne, potom podľa priemerného počtu jednotiek na predaj (avg_units_per_sale) vzostupne, a nakoniec podľa názvu kategórie abecedne. Formát vstupu Tabuľka sales: • sale_id (int) — jedinečný identifikátor predaja • product_id (int) — identifikátor produktu • category (text) — kategória produktu • sale_date (timestamp) — dátum a čas predaja • units_sold (int) — predané jednotky • unit_price (numeric) — cena za jednotku • discount (numeric) — zľava v percentách, môže byť NULL Stĺpec discount môže obsahovať chýbajúce hodnoty. Formát výstupu Dotaz by mal vrátiť tabuľku so stĺpcami v tomto poradí: • category (text) — kategória produktu • total_units_sold (int) — celkový počet predaných jednotiek v tejto kategórii • total_revenue (numeric) — celkový príjem podľa kategórie, zaokrúhlený na dve desatinné miesta • avg_units_per_sale (numeric) — priemerný počet jednotiek na predaj, zaokrúhlený na dve desatinné miesta • no_discount_share (numeric) — podiel predajov bez zľavy (hodnota medzi 0 a 1), zaokrúhlený na tri desatinné miesta Výsledok by mal byť zoradený najskôr podľa total_revenue zostupne, potom podľa avg_units_per_sale vzostupne, a nakoniec podľa názvu kategórie abecedne.
sobes.tech AI
Odpoveď od AI
sql VYBERTE kategóriu, SUM(predaných_jednotiek) AKO celkový_predaných_jednotiek, ROUND(SUM(cena_jednotky * predaných_jednotiek * (1 - COALESCE(zľava, 0) / 100.0)), 2) AKO celkový_príjem, ROUND(AVG(predaných_jednotiek), 2) AKO priemerné_jednotky_na_predaj, ROUND( SUM(CASE WHEN zľava JE NULL ALEBO zľava = 0 TAK 1 INAK 0 KONIEC) ::numeric / COUNT(*), 3 ) AKO podiel_bez_zľavy Z predajov SKUPINA PODĽA kategórie ZORADIŤ PODĽA celkový_príjem DESC, priemerné_jednotky_na_predaj ASC, kategória ASC;