Expresiones CASE en SQL
CASE es el condicional de SQL: gana la primera rama que coincide.
SELECT
CASE
WHEN total >= 500 THEN 'large'
WHEN total >= 100 THEN 'medium'
ELSE 'small'
END AS bucket,
COUNT(*) AS orders,
SUM(CASE WHEN status = 'refunded' THEN 1 ELSE 0 END) AS refunds
FROM orders
GROUP BY bucket;
Cómo funciona
- Las ramas se prueban en orden;
ELSEatrapa el resto. - Un
CASEdentro deSUMcuenta las filas que cumplen una condición. - Puedes agrupar por un
CASEpara segmentar filas al vuelo.
Palabras clave y builtins usados aquí
ASBYCASECOUNTELSEENDFROMGROUPSELECTSUMTHENWHEN
El intento, en números
- Líneas
- 10
- Caracteres a escribir
- 215
- Tokens
- 50
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 32 segundos.
Paso 1 de 7 en Expresiones; paso 16 de 24 en Analítica y reportes.