Agrupar por varias columnas en SQL
Agrupa por dos columnas y cada par distinto se vuelve una fila.
SELECT
country,
plan,
COUNT(*) AS customers,
ROUND(AVG(monthly_total), 2) AS avg_bill
FROM subscriptions
GROUP BY country, plan
HAVING COUNT(*) >= 5
ORDER BY country, customers DESC;
Cómo funciona
- Las columnas agrupadas son las únicas que puedes seleccionar sin agregar.
- Ordenar por las columnas agrupadas vuelve legible el reporte.
- Agrega una columna al
GROUP BYy los conteos se achican, nunca crecen.
Palabras clave y builtins usados aquí
ASAVGBYCOUNTDESCFROMGROUPHAVINGORDERSELECT
El intento, en números
- Líneas
- 9
- Caracteres a escribir
- 182
- Tokens
- 45
- Ritmo de tres estrellas
- 85 tpm
Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 32 segundos.
Paso 2 de 4 en Agrupación; paso 6 de 22 en Joins y agregación.