Оператор 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 |