Junior
Pardavimų analizė pagal prekių kategorijas mažmeninės prekybos parduotuvėje Jūs dirbate analitiku mažmeninės prekybos parduotuvėje. Jūsų užduotis – sudaryti pardavimų ataskaitą pagal prekių kategorijas su skaičiavimais: • bendras parduotų vienetų skaičius kategorijoje (total_units_sold); • bendros pajamos pagal kategoriją, įskaitant nuolaidas, kur nuolaida taikoma kaip unit_price × units_sold × (1 − discount/100). Jei nuolaida nėra (NULL), laikykite ją 0%. Apvalinti iki dviejų skaitmenų po kablelio; • vidutinis parduotų vienetų skaičius vienai pardavimui (avg_units_per_sale), apvalintas iki dviejų skaitmenų po kablelio; • nuolaidų neturinčių pardavimų dalis (no_discount_share) – pardavimų, kurių nuolaida yra NULL arba 0%, skaičius padalintas iš bendro pardavimų skaičiaus kategorijoje, apvalintas iki trijų skaitmenų po kablelio: Pirmiausia rezultatą rūšiuokite mažėjimo tvarka pagal total_revenue, tada didėjimo tvarka pagal vidutinį vienetų skaičių (avg_units_per_sale), ir galiausiai pagal kategorijos pavadinimą abėcėlės tvarka: Įvesties formatas Pardavimų lentelė: • sale_id (int) – unikalus pardavimo identifikatorius • product_id (int) – produkto identifikatorius • category (text) – produkto kategorija • sale_date (timestamp) – pardavimo data ir laikas • units_sold (int) – parduotų vienetų skaičius • unit_price (numeric) – vieneto kaina • discount (numeric) – nuolaida produkto procentais, gali būti NULL Nuolaidos stulpelis gali turėti praleidimų: Išvesties formatas Užklausa turi grąžinti lentelę su laukais tokia tvarka: • category (text) – produkto kategorija • total_units_sold (int) – bendras parduotų vienetų skaičius šioje kategorijoje • total_revenue (numeric) – bendros pajamos pagal kategoriją, įskaitant nuolaidas, apvalintos iki dviejų skaitmenų po kablelio • avg_units_per_sale (numeric) – vidutinis vienetų skaičius vienam užsakymui, apvalintas iki dviejų skaitmenų po kablelio • no_discount_share (numeric) – nuolaidų neturinčių pardavimų dalis kategorijoje (nuo 0 iki 1), apvalinta iki trijų skaitmenų po kablelio Rezultatas turi būti rūšiuojamas pirmiausia pagal mažėjimą total_revenue, tada didėjimą pagal avg_units_per_sale, ir galiausiai pagal kategorijos pavadinimą abėcėlės tvarka.
sobes.tech AI
Atsakymas iš AI
sql PASIRINKTI kategorija, SUM(parduota_vienetų) KAIP bendras_parduota_vienetų, ROUND(SUM(vieneto_kaina * parduota_vienetų * (1 - COALESCE nuolaida, 0) / 100.0)), 2) KAIP bendras_pajamos, ROUND(AVG(parduota_vienetų), 2) KAIP vidutinės_vienetų_santykis, ROUND( SUM(CASE WHEN nuolaida NULL ARBA nuolaida = 0 TADA 1 KITAIP 0 PABAIGA) ::numeric / COUNT(*), 3 ) KAIP nuolaida_buvo_šiandien Iš pardavimų Grupuoti pagal kategoriją Rūšiuoti pagal bendras_pajamas DESC, vidutinės_vienetų_santykis ASC, kategorija ASC;