SQL Inicial · Lección 4 de 5
Contar, sumar y agrupar
Hasta ahora sacaste listas. Ahora vas a sacar números: cuántos, cuánto en total, cuánto en promedio. Y con GROUP BY, el mismo número para cada categoría, como una tabla dinámica.
De muchas filas a una respuesta
Las funciones de agregación toman muchas filas y devuelven un solo valor. Son las preguntas de todos los días: cuántos clientes tenemos, cuánto vendimos, cuál es el precio promedio. Van en el SELECT, con la columna entre paréntesis.
| Función | Qué hace | Ejemplo |
|---|---|---|
COUNT(*) | cuenta filas | ¿Cuántos productos hay? → 12 |
SUM(stock) | suma una columna | ¿Cuántas unidades hay en total? |
AVG(precio) | saca el promedio | ¿Cuánto cuesta un producto en promedio? |
MAX / MIN | el mayor y el menor | ¿Cuál es el precio más alto? |
Se combinan con todo lo que ya sabés. Esta consulta responde "¿cuántos productos hay que reponer?":
SELECT COUNT(*) FROM productos WHERE stock < 10;
Y con AS le ponés un nombre claro a la columna del resultado:
SELECT AVG(precio) AS precio_promedio FROM productos;
¿Y si quiero el número de cada categoría?
Para eso está GROUP BY. Arma un grupo por cada valor distinto de la columna y calcula la función dentro de cada grupo. Es lo mismo que hace una tabla dinámica en una planilla, pero escrito.
SELECT categoria,
COUNT(*) AS productos
FROM productos
GROUP BY categoria;Una regla para no equivocarte: toda columna del SELECT que no esté dentro de una función tiene que estar en el GROUP BY. Si pedís categoria y COUNT(*), agrupás por categoria. Y si querés ordenar el resultado, el ORDER BY va después del GROUP BY.
Actividad 1
¿Qué función responde cada pregunta?
¿Qué función usarías para responder cada pregunta? Tocá una tarjeta y después la función, o arrastrala.
COUNT
cuenta filas
SUM
suma valores
AVG
saca el promedio
MAX / MIN
el mayor o el menor
Actividad 2
Los números del almacén
Cuatro preguntas, de la más simple a la más completa. Usá los ejemplos de arriba como guía y, antes de escribir, ubicate: mirá qué columnas tiene la tabla y abrí la tabla completa.
productos:idINTEGERnombreTEXTcategoriaTEXTprecioREALstockINTEGERPrimer paso: explorar toda la tabla
Antes de escribir tu consulta, conviene mirar la tabla completa. Esta consulta trae todas las columnas (eso significa el asterisco) y todas las filas:
SELECT * FROM productos;
Cargando la tabla…
Mirándola te ubicás: qué columnas hay, cómo están escritos los textos (por ejemplo, 'Lácteos' con mayúscula y tilde) y entre qué valores andan los números. Con eso armás tu consulta sin adivinar.
Hacelo siempre como primer paso cuando trabajes con una tabla nueva. Si la tabla es enorme, sumale LIMIT 20 para ver solo una muestra, como viste en la lección 3.
- 1¿Cuántos productos hay en la tabla
productos? - 2¿Cuántas unidades hay en stock en total, sumando todos los productos?
- 3Mostrá cada
categoriacon la cantidad de productos que tiene. - 4Mostrá cada
categoriacon su precio promedio, de la más cara a la más barata.
Tu misión, la tabla completa, los mensajes y la ayuda están en el panel de la izquierda.
Tocá Ejecutar para ver el resultado.
Chequeo rápido
¿Qué devuelve esta consulta?
SELECT categoria,
SUM(stock)
FROM productos
GROUP BY categoria;Pedile a la IA que te explique un resultado
Un número suelto puede engañar. Antes de llevarlo a una reunión, pedile a Gemini que te ayude a interpretarlo. Copiá este pedido y cambiá lo que está entre corchetes:
Corrí esta consulta: [pegá tu consulta]. Me dio este resultado: [pegá la tabla]. ¿Cómo lo explicarías en dos oraciones para mi equipo? ¿Qué otra pregunta me conviene hacerle a los datos?
Pegá solo resultados resumidos, nunca datos personales de clientes.
COUNT, SUM, AVG, MAX y MIN resumen muchas filas en un número. Con GROUP BY obtenés ese número para cada grupo, como en una tabla dinámica.Ya resumís datos como un analista