Conviene haber comprendido Agrupación y conjuntos.
Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.
Ubícate antes de avanzar
Al terminar deberías poder relacionar Subconsulta escalar con IN, ANY y ALL y resolver un caso nuevo.
Reserva entre 35 y 55 minutos para lectura, ejemplos, tres comprobaciones y cierre.
Las primeras secciones se leen sin instalar nada. Para practicar SQL prepara PostgreSQL o un DBMS equivalente.
Abrir la guía de herramientas →Diagnóstico rápido: ¿cómo se relacionan Subconsulta escalar y IN, ANY y ALL? +
No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.
Aprende el tema paso a paso
Usarás resultados de una consulta dentro de otra y elegirás operadores correctos para una fila, varias filas o una comprobación de existencia.
- La subconsulta responde una parte del problema
- IN, ANY y ALL expresan comparaciones diferentes
- EXISTS y las subconsultas correlacionadas comprueban existencia
La subconsulta responde una parte del problema
La consulta interna produce un valor o conjunto que la externa utiliza. Conviene ejecutarla por separado para comprobar qué devuelve.
Una subconsulta escalar devuelve un valor.
Puede aparecer en WHERE, FROM o SELECT según el caso.
Los paréntesis delimitan la consulta interna.
¿Qué ocurriría si la subconsulta usada con = devuelve varias filas?
Mostrar respuesta +
El DBMS producirá un error porque el operador espera un solo valor. Se necesita un operador para múltiples filas o una subconsulta que garantice un resultado único.
IN, ANY y ALL expresan comparaciones diferentes
IN compara con cualquier valor de una lista. ANY exige cumplir respecto de al menos uno; ALL, respecto de todos.
= ANY equivale conceptualmente a IN.
> ALL exige superar el valor máximo del conjunto.
< ANY exige ser menor que al menos un valor.
¿Qué significa salario > ALL (subconsulta)?
Mostrar respuesta +
Que el salario es mayor que todos los valores devueltos; si el conjunto tiene salarios, supera al máximo.
EXISTS y las subconsultas correlacionadas comprueban existencia
Una subconsulta correlacionada usa valores de la fila externa. EXISTS solo pregunta si aparece al menos una coincidencia y puede detenerse al encontrarla.
EXISTS no necesita devolver columnas útiles.
La correlación se reconoce por el alias externo dentro de la subconsulta.
WITH nombra resultados intermedios para mejorar claridad.
¿EXISTS cuenta cuántos pedidos tiene cada cliente?
Mostrar respuesta +
No. Solo comprueba si existe al menos uno. Para contar se usaría COUNT con agrupación o una subconsulta adecuada.
Tu recorrido en tres ideas
- La subconsulta responde una parte del problema
- IN, ANY y ALL expresan comparaciones diferentes
- EXISTS y las subconsultas correlacionadas comprueban existencia
Comprueba que puedes usarlo
Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.
Usar = con una subconsulta que puede devolver varias filas.
Usar NOT IN sin considerar que el conjunto puede contener NULL.
Ahora hazlo sin guía
Obtén productos sobre el precio promedio de su categoría y categorías sin ventas recientes.
Mostrar pauta de corrección +
- La correlación de la primera subconsulta está bien definida.
- EXISTS o NOT EXISTS expresa la segunda necesidad.
- Se prueban empates, categorías vacías y NULL.
