> misión 4/8 · 25 min

Resumir con GROUP BY

Mensaje de Rodrigo Henríquez, gerente comercial de Minimarkets del Sur

El directorio quiere dos resúmenes del trimestre. Primero, cuánto vendió cada local, en pesos. Segundo, cómo nos pagan los clientes: cuántas ventas hubo con cada medio de pago y cuánto dinero entró por cada uno.

Concepto

En las planillas resumiste por comuna con una tabla dinámica (o con CONTAR.SI y SUMAR.SI). En SQL eso se hace con GROUP BY: junta las filas que comparten un valor y calcula algo para cada grupo.

SELECT categoria, COUNT(*) AS productos FROM productos GROUP BY categoria

Las funciones de resumen más usadas:

FunciónCalcula
COUNT(*)cuántas filas tiene el grupo
SUM(columna)la suma
AVG(columna)el promedio
MIN(columna) y MAX(columna)el menor y el mayor

AS le pone nombre a la columna calculada: SUM(monto) AS ventas.

La regla de oro: todo lo que aparece en el SELECT y no es una función de resumen, tiene que estar en el GROUP BY.

> tarea SQL

Trae el id de cada local (local_id) y la suma de sus montos de venta.

Tablas disponibles
  • locales: id, nombre, ciudad, region, metros2
  • productos: id, nombre, categoria, precio, proveedor
  • ventas: id, fecha, local_id, producto_id, cantidad, monto, medio_pago

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 cada medio de pago, cuántas ventas tuvo y la suma de sus montos, en ese orden de columnas.

Tablas disponibles
  • locales: id, nombre, ciudad, region, metros2
  • productos: id, nombre, categoria, precio, proveedor
  • ventas: id, fecha, local_id, producto_id, cantidad, monto, medio_pago

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

El resumen por local muestra local_id 1, 2, 3… Rodrigo te dice: 'No sé qué local es el 3'. ¿Qué haces?

Cargando opciones…

Aprueba las tareas de esta misión para ver el cierre.