Saltar al contenido

Agrupar por varias columnas

SQL · Unidad 6: Agrupar

¿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

categoriadisponibles
Accesorios2
Audio1
Equipos2
Pantallas1

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. 1. Predice la salida

    Hay dos productos agotados. Son el Cable, de Accesorios, y el Parlante, de Audio. ¿Qué devuelve esta consulta?

  2. 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. 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. 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. 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. 6. Opción múltiple

    En pedidos hay 12 filas, de 6 clientes y de 7 productos distintos, y ningún cliente ha repetido producto. Sin el WHERE de arriba, ¿cuántas filas devuelve una consulta con GROUP BY cliente_id, producto_id?

  7. 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. 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. 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. 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?

Hacer esta lección

Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.

Ver todas las lecciones →