La declaración GROUP BY generalmente es usada cuando se usan funciones de agregación (Conteos, Máximos, Mínimos, Sumas, Promedios) para agrupar el resultado por una o más columnas y que su resultado sea resumido.
GROUP BY nos da una forma de combinar filas y datos agregados.
Los datos utilizados son de los datos de contribuciones de campaña que hemos estado usando en algunas de estas guías.
La siguiente declaración SQL responde a la pregunta: "¿Qué candidatos recibieron la mayor contribución total en 2016, PERO solo aquellos que tenían más de $ 20 millones de dólares?"
Al ordenar este conjunto de datos en un orden descendente (DESC), los candidatos con las mayores contribuciones totales se encuentran en la parte superior de la lista.
GROUP BY Candidate, Election_year -- indica al DBMS que agregue por estas dos columnas, en este caso suma Total_$ y cuenta el número de filas en las que coinciden Candidate y Election_year
HAVING sum(Total_$) > 20000000 -- limita las filas que se muestran a aquellas que superan los 20M (una vez sumados los datos según la claúsula GROUP BY)
ORDER BY sum(Total_$) DESC; -- ordena las filas resultantes, con la suma más grande primero
Al usar la clausula GROUP BY el error más frecuente en el que se puede caer es poner más campos en la agrupación que en el select, haciendo que nuestros datos no sean del todo resumidos y se repitan en algunas ocasiones.