Mensaje de Rodrigo Henríquez, gerente comercial de Minimarkets del Sur
Vamos a negociar con proveedores y necesito saber qué productos vendieron 55 unidades o más en el trimestre. También quiero saber en qué locales el ticket promedio, lo que gasta un cliente por venta, supera los 6.000 pesos: ahí vamos a probar productos más caros.
Concepto
WHERE filtra filas antes de agrupar. Para filtrar grupos después de calcularlos se usa HAVING:
SELECT categoria, COUNT(*) AS productos FROM productos GROUP BY categoria HAVING COUNT(*) >= 5El orden de las cláusulas siempre es el mismo:
SELECT … FROM … WHERE … GROUP BY … HAVING … ORDER BY … LIMIT …
Una forma de recordarlo: WHERE decide qué filas entran a los grupos y HAVING decide qué grupos salen en el resultado. En HAVING se repite la función de resumen: HAVING SUM(cantidad) >= 55.
> tarea SQL
Trae el id de cada producto (producto_id) y la suma de sus unidades vendidas, solo para los que vendieron 55 unidades o más.
Primero intenta: las pistas aparecen después de 2 intentos con un resultado incorrecto (los errores de código no cuentan). Llevas 0.
> tarea SQL
Trae el id de cada local y su ticket promedio redondeado a pesos, solo para los locales con un ticket promedio mayor a 6000.
Primero intenta: las pistas aparecen después de 2 intentos con un resultado incorrecto (los errores de código no cuentan). Llevas 0.
> decisión
Un compañero escribió WHERE SUM(cantidad) >= 55 y la base le respondió con un error. ¿Por qué?
Cargando opciones…