Junior
Análisis de ventas por categorías de productos en una tienda minorista Trabajas como analista en una tienda minorista. Tu tarea es crear un informe de ventas por categorías de productos con los siguientes cálculos: • cantidad total de unidades vendidas en la categoría (total_units_sold); • ingresos totales por categoría, considerando descuentos, donde el descuento se calcula como unit_price × units_sold × (1 − discount/100). Si no hay descuento (NULL), se considera un 0%. Redondear a dos decimales; • promedio de unidades vendidas por venta (avg_units_per_sale), redondeado a dos decimales; • proporción de ventas sin descuento (no_discount_share) — número de ventas con NULL o 0% de descuento, dividido por el total de ventas en la categoría, redondeado a tres decimales. Primero, ordena los resultados por ingresos totales (total_revenue) en orden descendente, luego por promedio de unidades por venta (avg_units_per_sale) en orden ascendente, y finalmente por nombre de categoría en orden alfabético. Formato de entrada Tabla sales: • sale_id (int) — identificador único de la venta • product_id (int) — identificador del producto • category (text) — categoría del producto • sale_date (timestamp) — fecha y hora de la venta • units_sold (int) — unidades vendidas • unit_price (numeric) — precio por unidad • discount (numeric) — descuento en porcentaje, puede ser NULL La columna discount puede contener valores nulos. Formato de salida La consulta debe devolver una tabla con los siguientes campos en este orden: • category (text) — categoría del producto • total_units_sold (int) — cantidad total de unidades vendidas en la categoría • total_revenue (numeric) — ingresos totales en la categoría, redondeados a dos decimales • avg_units_per_sale (numeric) — promedio de unidades por venta, redondeado a dos decimales • no_discount_share (numeric) — proporción de ventas sin descuentos (valor entre 0 y 1), redondeado a tres decimales El resultado se ordena primero por total_revenue en orden descendente, luego por avg_units_per_sale en orden ascendente, y finalmente por categoría en orden alfabético.
sobes.tech AI
Respuesta de la IA
sql SELECCIONAR categoría, SUM(unidades_vendidas) COMO total_unidades_vendidas, REDONDEAR(SUM(precio_unitario * unidades_vendidas * (1 - COALESCE(descuento, 0) / 100.0)), 2) COMO ingresos_totales, REDONDEAR(AVG(unidades_vendidas), 2) COMO promedio_unidades_por_venta, REDONDEAR( SUM(CASE WHEN descuento ES NULL O descuento = 0 ENTONCES 1 MÁS 0 FIN)::numérico / COUNT(*), 3 ) COMO porcentaje_sin_descuento DE ventas AGRUPAR POR categoría ORDENAR POR ingresos_totales DESC, promedio_unidades_por_venta ASC, categoría ASC;