Оператор SQL GROUP BY


Оператор SQL GROUP BY используется для объединения результатов выборки по одному или нескольким столбцам.

Оператор SQL GROUP BY имеет следующий синтаксис:

GROUP BY column_name

С использованием оператора SQL GROUP BY тесно связано использование агрегатных функций и оператор SQL HAVING 


Примеры оператора SQL GROUP BY. Имеется следующая таблица Artists:

Singer Album Year Sale
The Prodigy Invaders Must Die 2008 1200000
Drowning Pool Sinner 2001 400000
Massive Attack Mezzanine 1998 2300000
The Prodigy Fat of the Land 1997 600000
The Prodigy Music For The Jilted Generation 1994 1500000
Massive Attack 100th Window 2003 1200000
Drowning Pool Full Circle 2007 800000
Massive Attack Danny The Dog 2004 1900000
Drowning Pool Resilience 2013 500000

Пример 1. Используя оператор SQL GROUP BY найти сумму продаж альбомов (Sale) всех исполнителей (Singer):

SELECT Singer, SUM(Sale) AS AllSales
FROM Artists
GROUP BY Singer

Результат:

Singer AllSales
Drowning Pool 1700000
Massive Attack 5400000
The Prodigy 3300000

В данном запросе используется оператор SQL AS, позволяющий задать новое имя столбца AllSales на выходе. В нашем случае это сделано для наглядности.

Пример 2. Узнать в каком году был выпущен последний альбом каждой из групп используя оператор SQL GROUP BY:

SELECT Singer, MAX(Year) AS LastAlbumYear
FROM Artists
GROUP BY Singer

Результат:

Singer LastAlbumYear
Drowning Pool 2013
Massive Attack 2004
The Prodigy 2008