SQL desde cero · lección 3 de 6

Contar y sumar: COUNT, SUM y GROUP BY

Dejar de mirar filas sueltas y sacar totales: cuántos robos hay, cuánto botín por ciudad y qué ciudad perdió más.

Hasta ahora cada fila del resultado era una fila de la tabla. Las funciones de agregación hacen otra cosa: resumen muchas filas en un solo número. COUNT(*) cuenta filas, SUM(botin) las suma, y también están AVG, MIN y MAX.

GROUP BY parte la tabla en grupos antes de resumir: GROUP BY ciudad hace un montón por ciudad y calcula el número para cada montón. El resultado tiene una fila por grupo.

La regla que evita casi todos los errores: en el SELECT sólo puede haber columnas que estén en el GROUP BY y funciones de agregación. Y fíjate en la fila con NULL: es un robo del que no hay sospechoso.

La tabla

robos

idsospechoso_idciudadbotin
12Puerto Sal1200
22Puerto Sal800
34San Ciro300
45Puerto Sal5000
58Puerto Sal450
68Bahía Lumen950
78San Ciro150
81Bahía Lumen2200
9NULLBahía Lumen700

Puedes escribir aquí mismo: cada ejercicio se ejecuta con DuckDB en tu navegador, sin instalar nada. Con el teclado: Ctrl + Enter.

1. ¿Cuántos robos hay?

Cuenta las filas de la tabla robos.

2. Robos por ciudad

La ciudad y cuántos robos hubo en cada una.

3. Botín por ciudad

La ciudad y la suma del botín en cada una.

4. La ciudad que más perdió

Sólo la ciudad con más botín y su total.