Junior
Análise de vendas por categorias de produtos numa loja de retalho Trabalha como analista numa loja de retalho. A tua tarefa é criar um relatório de vendas por categorias de produtos com os seguintes cálculos: • quantidade total de unidades vendidas na categoria (total_units_sold); • receita total por categoria, considerando descontos, onde o desconto é calculado como unit_price × units_sold × (1 − discount/100). Se não houver desconto (NULL), considerar 0%. Arredondar para duas casas decimais; • média de unidades vendidas por venda (avg_units_per_sale), arredondada a duas casas decimais; • proporção de vendas sem desconto (no_discount_share) — número de vendas com NULL ou 0% de desconto, dividido pelo total de vendas na categoria, arredondado a três casas decimais. Ordena primeiro pelos resultados de maior receita total (total_revenue), depois por média de unidades por venda (avg_units_per_sale) em ordem crescente, e por último pelo nome da categoria em ordem alfabética. Formato de entrada Tabela sales: • sale_id (int) — identificador único de venda • product_id (int) — identificador do produto • category (text) — categoria do produto • sale_date (timestamp) — data e hora da venda • units_sold (int) — unidades vendidas • unit_price (numeric) — preço por unidade • discount (numeric) — desconto em percentagem, pode ser NULL A coluna discount pode conter valores nulos. Formato de saída A consulta deve retornar uma tabela com os seguintes campos na seguinte ordem: • category (text) — categoria do produto • total_units_sold (int) — quantidade total de unidades vendidas na categoria • total_revenue (numeric) — receita total por categoria, arredondada a duas casas decimais • avg_units_per_sale (numeric) — média de unidades por venda, arredondada a duas casas decimais • no_discount_share (numeric) — proporção de vendas sem descontos (valor entre 0 e 1), arredondada a três casas decimais O resultado deve ser ordenado primeiro por total_revenue em ordem descendente, depois por avg_units_per_sale em ordem crescente, e finalmente por categoria em ordem alfabética.
sobes.tech IA
Resposta da IA
sql SELECIONAR categoria, SUM(unidades_vendidas) COMO total_unidades_vendidas, ARREDONDAR(SUM(preco_unitario * unidades_vendidas * (1 - COALESCE(desconto, 0) / 100.0)), 2) COMO receita_total, ARREDONDAR(MÉDIA(unidades_vendidas), 2) COMO media_unidades_por_venda, ARREDONDAR( SUM(CASE WHEN desconto É NULL OU desconto = 0 ENTÃO 1 OUTRO 0 FIM)::numérico / COUNT(*), 3 ) COMO proporção_sem_desconto DE vendas AGRUPAR POR categoria ORDENAR POR receita_total DESC, media_unidades_por_venda ASC, categoria ASC;