Junior
Анализ на продажбите по категории продукти в търговията на дребно Работите като анализатор в търговията на дребно. Вашата задача е да създадете отчет за продажбите по категории с следните изчисления: • общият брой продадени единици в категорията (total_units_sold); • общият приход по категория, като се вземат предвид отстъпките, където отстъпката се изчислява като unit_price × units_sold × (1 − discount/100). Ако отстъпката е NULL, се счита за 0%. Закръглете до две десетични места; • средният брой продадени единици на продажба (avg_units_per_sale), закръглен до две десетични места; • делът на продажбите без отстъпка (no_discount_share) — броят на продажбите с NULL или 0% отстъпка, разделен на общия брой продажби в категорията, закръглен до три десетични места. Подредете резултатите първо по общите приходи (total_revenue) в низходящ ред, след това по средния брой единици на продажба (avg_units_per_sale) във възходящ ред, и накрая по името на категорията в азбучен ред. Формат на входа Таблица sales: • sale_id (int) — уникален идентификатор на продажбата • product_id (int) — идентификатор на продукта • category (text) — категория на продукта • sale_date (timestamp) — дата и час на продажбата • units_sold (int) — продадени единици • unit_price (numeric) — цена за единица • discount (numeric) — отстъпка в проценти, може да бъде NULL Колоната discount може да съдържа празни стойности. Формат на изхода Заявката трябва да върне таблица с полетата в следния ред: • category (text) — категория на продукта • total_units_sold (int) — общият брой продадени единици в тази категория • total_revenue (numeric) — общият приход по категория, закръглен до две десетични места • avg_units_per_sale (numeric) — средният брой единици на продажба, закръглен до две десетични места • no_discount_share (numeric) — делът на продажбите без отстъпка (стойност между 0 и 1), закръглен до три десетични места Резултатът трябва да бъде сортиран първо по total_revenue в низходящ ред, след това по avg_units_per_sale във възходящ ред, и накрая по името на категорията в азбучен ред.
sobes.tech AI
Отговор от AI
sql ИЗБЕРЕТЕ категория, SUM(продадени_единици) КАТО общо_продадени_единици, ROUND(SUM(цена_на_единица * продадени_единици * (1 - COALESCE(отстъпка, 0) / 100.0)), 2) КАТО общ_приход, ROUND(AVG(продадени_единици), 2) КАТО средно_единици_на_продажба, ROUND( SUM(CASE WHEN отстъпка Е NULL ИЛИ отстъпка = 0 ТОГАВА 1 ИНАЧЕ 0 КРАЙ) ::numeric / COUNT(*), 3 ) КАТО дял_без_отстъпка ОТ продажби ГРУПИРАНЕ ПО категория ОРДЕР ПО общ_приход DESC, средно_единици_на_продажба ASC, категория ASC;