El orden de una consulta
SQL · Unidad 6: Agrupar
- Plan completo
- SQL
- 9 ejercicios
De vuelta en la tienda. El dueño quiere premiar a un cliente. De lo vendido hasta hoy, 15 de enero, y entre quienes han pedido dos veces o más, ¿quién se ha llevado más unidades?
La pregunta tiene varias partes, y cada una es una cláusula que ya conoces. Juntas van siempre en este orden, que es SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY y LIMIT. No hace falta usarlas todas. Las que uses van así.
SELECT cliente_id,
SUM(cantidad) AS unidades
FROM pedidos
WHERE fecha <= '2026-01-15'
GROUP BY cliente_id
HAVING COUNT(*) >= 2
ORDER BY unidades DESC
LIMIT 1;Devuelve
| cliente_id | unidades |
|---|---|
| 2 | 7 |
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. Ordena las líneas
Hoy, 15 de enero, todavía no termina, así que no cuenta. De los días anteriores, y entre los que tuvieron dos pedidos, ¿cuál fue el más flojo en unidades? Ordena la consulta.
2. Predice la salida
La consulta que abrió la lección contestó el cliente 2, con 7 unidades hasta hoy. A esta le quitaron el
HAVING. El cliente 4 ha hecho un solo pedido, de 10 unidades, el 9 de enero. ¿Qué devuelve?3. Predice la salida
Los pedidos 1 y 2, los dos primeros de la tabla, son del cliente 1, que lleva tres en total. El cliente 2 también lleva tres. ¿Qué devuelve esta consulta?
4. Completa el código
¿En qué secciones hay algo disponible por menos de 100, y desde qué precio? Los agotados no cuentan. Completa cada filtro con su palabra.
5. Encuentra el bug
¿Cuántas unidades de cada producto se han pedido hasta hoy, 15 de enero? Aquí la base contesta
near "GROUP": syntax error. ¿Qué línea tiene el problema?6. Opción múltiple
En PostgreSQL,
HAVING unidades > 5es un error aunque elSELECTdigaSUM(cantidad) AS unidades. Aquí pasa. Con el orden en que se resuelve una consulta, ¿por qué falla allá, y qué se escribe para que corra en los dos?7. Opción múltiple
En esta unidad viste que, junto a
GROUP BY categoria, elSELECTno puede pedirnombrea secas. Con el orden en que se resuelve una consulta, ¿por qué?8. Ordena las líneas
Los pedidos de 2 a 5 unidades tienen descuento por cantidad. ¿Qué clientes lo han recibido más de una vez? Ordena la consulta. Sobra una línea.
9. Escribe el código
La tienda va a abrir su primer punto de entrega en la ciudad donde tiene más clientes. El grupo de quienes no tienen ciudad anotada no cuenta, tenga los clientes que tenga. Escribe una consulta que devuelva una sola fila con dos columnas en este orden: la ciudad y cuántos clientes tiene.
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.