Una subconsulta como tabla
SQL · Unidad 9: Subconsultas
- Plan completo
- SQL
- 9 ejercicios
¿Cuántos pedidos entran en el día más movido? Contar los pedidos de cada día ya sabes, con GROUP BY fecha. Quedarte con el mayor de esos conteos pediría MAX(COUNT(*)), y un agregado dentro de otro no se puede.
Eso no cambió. Lo que se puede es resumir en dos pasos. El resultado de una consulta es una tabla, y una tabla puede ir en un FROM. La consulta de adentro deja una fila por día, con su conteo en una columna llamada veces. La de afuera recorre esas filas y saca el máximo.
SELECT MAX(veces)
FROM (
SELECT COUNT(*) AS veces
FROM pedidos
GROUP BY fecha
) por_dia;Devuelve
| MAX(veces) |
|---|
| 2 |
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
¿Cuántos productos tiene una sección, en promedio? Ordena la consulta que primero cuenta los productos de cada sección y después promedia esos conteos. Sobran dos líneas.
2. Predice la salida
Seis clientes han pedido algo. Ana y Luis, tres veces. Valeria y Diego, dos. Sofía y Mateo, una. Camila y Bruno no han pedido nunca. ¿Qué devuelve esta consulta?
3. Encuentra el bug
¿Cuántas unidades lleva el producto más pedido? La consulta de adentro suma las unidades de cada producto, y la de afuera busca la suma más alta. Aquí SQL contesta
no such column: cantidad. ¿Qué línea tiene el problema?4. Completa el código
¿Qué días entró más de un pedido? Completa la palabra que filtra las filas de
por_dia.5. Predice la salida
Hubo pedidos en nueve días. En tres de ellos, los días 4, 12 y 15 de enero, entraron dos, y en los demás, uno. Esta consulta se lee de adentro hacia afuera. ¿Qué devuelve?
6. Opción múltiple
¿Cuál de estas preguntas no se puede contestar con una subconsulta en el
WHEREy nada más?7. Ordena las líneas
¿A qué clientes no les ha llegado nunca una caja grande, de 3 unidades o más? Ya contestaste esta pregunta con
LEFT JOINy conNOT IN. Ordena la tercera forma. Sobran dos líneas.8. Encuentra el caso que falla
La tienda avisa de un modelo nuevo a quienes han pedido alguna vez un Teclado, el producto 1. Cada cliente tiene que salir una sola vez en la lista. Son Ana y Valeria. Alguien la escribió con un
JOIN. ¿Con cuál de estos cambios sale un nombre repetido?9. Escribe el código
¿Cuántos clientes han vuelto a comprar? Escribe una consulta que devuelva un solo número, cuántos clientes tienen más de un pedido. Primero hace falta la tabla de esos clientes, y después, contar sus filas.
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.