Funciones de agregación
Parte de la sección Fundamentos del Journey de SQL de Coddy. Lección 68 de 72.
Las funciones de agregación se utilizan para calcular AVG() o MAX(), o cualquier otra función de agregación hasta la fila actual.
Por ejemplo, podríamos calcular los ingresos máximos que obtuvimos hasta cada período final:
| mes | ingresos | región |
| 4 | 40 | Este |
| 5 | 20 | Este |
| 6 | 60 | Oeste |
| 7 | 55 | Oeste |
| 8 | 61 | Este |
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1Esto devolverá:
| mes | ingresos | max_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 40 |
| 6 | 60 | 60 |
| 7 | 55 | 60 |
| 8 | 61 | 61 |
Para los meses 4 y 5, el ingreso máximo es 40; para los meses 6 y 7, es 60; y para el mes 8, es 61. Esto se debe a que, cuando encuentra un ingreso nuevo y mayor, descarta el anterior y utiliza el más grande hasta ese momento.
Para la función AVG() se verá así:
SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1| mes | ingresos | avg_revenue |
| 4 | 40 | 40 |
| 5 | 20 | 30 |
| 6 | 60 | 40 |
| 7 | 55 | 43.75 |
| 8 | 61 | 47.2 |
También podemos agrupar nuestros cálculos por categorías específicas usando PARTITION BY. Por ejemplo:
SELECT month, revenue, region,
MAX(revenue) OVER (PARTITION BY region ORDER BY month ASC) as max_revenue
FROM table1Nos daría:
| mes | ingresos | región | max_revenue |
| 4 | 40 | East | 40 |
| 5 | 20 | East | 40 |
| 6 | 60 | West | 60 |
| 7 | 55 | West | 60 |
| 8 | 61 | East | 61 |
Ahora el máximo se calcula por separado para cada región. Las regiones East y West mantienen sus propios máximos acumulados de forma independiente.
Desafío
FácilTablas y columnas disponibles:
books:book,page,words
Para cada libro, muestra el nombre del libro, su número total de páginas, el número de palabras de cada página y calcula:
- El número máximo de palabras encontrado en cualquier página de ese libro
- El número promedio de palabras por página de todo el libro
- La diferencia entre las palabras de la página actual y el promedio de palabras por página del libro
Muestra los resultados ordenados por libro y número de página.
Devuelve las siguientes columnas:
bookpagewordsmax_words_in_bookavg_words_per_pagediff_from_avg
Pruébalo tú mismo
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Más palabras clave
La palabra clave INLa palabra clave BETWEENLa palabra clave LIKELa palabra clave ASRepaso: modelos de celulares2Condiciones
Conceptos básicos de las condicionesLa palabra clave ANDLa palabra clave ORLa palabra clave NOTCombinación de múltiples condicionesParéntesisBooleanos5Operaciones aritméticas
Operadores matemáticosColumnas matemáticasLa operación móduloLa función ROUND()3Formato de retorno específico
Valores nulosOrdenar resultados, parte 1Ordenar resultados, parte 2Repaso: empresa de ciberseguridadLimitar el número de registrosRepaso: fábrica de vehículos6Desafíos introductorios
Repaso - Elección parlamentariaRepaso - Detención policial de un criminalRepaso - Recipiente de bebida de barRepaso - Ingeniería de nuevas columnas9Múltiples tablas
Unión básica, parte 1Unión básica, parte 2Repaso: uniónAutouniónRepaso: autouniónUniónSimplificar consultas, palabra clave WITHRepaso: consultas WITHRepaso: contratista inmobiliario12Funciones de ventana, parte 2
Funciones RANK y DENSE_RANKRepaso: RANK y DENSE_RANKFunción NTILEFunciones de agregaciónCriterio ROWS y RANGEPractica por tu cuenta: Playground de SQL