Subconsulta escalar en SQL
Una subconsulta que devuelve un solo valor puede ocupar el lugar de una columna o constante.
SELECT
o.id,
o.total,
(
SELECT COUNT(*)
FROM order_items AS i
WHERE i.order_id = o.id
) AS item_count
FROM orders AS o
WHERE o.total > (
SELECT AVG(total)
FROM orders
);
Cómo funciona
- En la lista del
SELECTse evalúa por cada fila externa. - Comparada contra un agregado forma un filtro relativo.
- Referirse al alias externo es lo que la mantiene correlacionada.
Palabras clave y builtins usados aquí
ASAVGCOUNTFROMSELECTWHERE
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 169
- Tokens
- 49
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 33 segundos.
Paso 2 de 3 en Subconsultas; paso 2 de 24 en Analítica y reportes.