Agrupar por varias columnas
SQL · Unidad 6: Agrupar
- Plan completo
- SQL
- 10 ejercicios
¿Cuántos productos de cada sección se pueden vender hoy? Los agotados no cuentan, y eso es una condición sobre cada producto. Va en un WHERE, como siempre.
El WHERE se escribe antes del GROUP BY y corre antes. Primero quita filas, y los grupos se arman con lo que quedó. Cuando llega el COUNT, el Cable y el Parlante ya no están.
SELECT categoria,
COUNT(*) AS disponibles
FROM productos
WHERE stock > 0
GROUP BY categoria;Devuelve
| categoria | disponibles |
|---|---|
| Accesorios | 2 |
| Audio | 1 |
| Equipos | 2 |
| Pantallas | 1 |
El resto de la explicación está en la lección, que es del plan completo.
Ejercicios de esta lección
Se hacen en la app, que los corrige al momento y explica por qué.
1. Predice la salida
Hay dos productos agotados. Son el Cable, de Accesorios, y el Parlante, de Audio. ¿Qué devuelve esta consulta?
2. Ordena las líneas
Hoy es 15 de enero de 2026. ¿Cuántos pedidos lleva cada cliente hasta hoy, sin el pedido con fecha del día 20? Ordena la consulta. Sobra una línea.
3. Predice la salida
Los pedidos de 3 unidades o más salen en caja grande. Son tres. Uno de 5 unidades del cliente 2, uno de 10 del cliente 4 y uno de 3 del cliente 5. Entre todos sus pedidos, el cliente 2 lleva 8 unidades y el 5 lleva 4. ¿Qué devuelve esta consulta?
4. Completa el código
Alguien corrige el reporte para dejar fuera a quien no tiene la edad anotada, y lo ordena. Completa la línea que arma un grupo por década.
5. Predice la salida
A alguien le molesta la fila con la ciudad vacía en el reporte de clientes por ciudad, y la «arregla» así. Sin el arreglo, Lima tiene 3 clientes, Bogotá 2, Cusco 1 y Quito 1, y queda Sofía, sin ciudad. ¿Qué devuelve?
6. Opción múltiple
En
pedidoshay 12 filas, de 6 clientes y de 7 productos distintos, y ningún cliente ha repetido producto. Sin elWHEREde arriba, ¿cuántas filas devuelve una consulta conGROUP BY cliente_id, producto_id?7. Predice la salida
El cliente 1 ha hecho pedidos de 2, de 1 y de 1 unidades. El cliente 6, dos pedidos de 1 unidad. ¿Qué devuelve esta consulta?
8. Encuentra el bug
El dueño pidió cuántos pedidos ha hecho cada cliente, con una fila por cliente. A esta consulta le quedó algo de una versión anterior, y el cliente 1 sale tres veces, cada una con un 1. ¿Qué línea tiene el problema?
9. Ordena las líneas
¿Algún cliente ha hecho dos pedidos el mismo día? Ordena la consulta que cuenta los pedidos de cada cliente en cada fecha, con lo más reciente primero. Sobra una línea.
10. Encuentra el caso que falla
Esta consulta busca registros duplicados en
clientes, la misma persona anotada dos veces. Dos registros son de la misma persona si coinciden el nombre y la ciudad, y la consulta debe decir cuántas veces está cada persona. ¿Con cuál de estos datos toma por una sola persona a dos que no lo son?
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.