Открытая коллекция знаний

OpenU.Ru

Язык запросов SQL. DML.

Предложение SQL GROUP BY

Предложение GROUP BY позволяет вам определять подмножества строк таблицы в терминах значений указанного поля, и применять агрегатные функции к этим подмножествам. Это дает возможность объединять поля и агрегатные функции в едином предложении SELECT.

Запросы такого типа пишутся следующим образом: в начале в предложении SELECT перечисляют те поля, к которым нужно применить предложение GROUP BY, затем пишется агрегирующая функция (если нужна), предложение FROM, предложение WHERE, а затем предложение GROUP BY, в котором перечисляются те же имена полей, что и в предложении SELECT. По ним произведется группировка. Если имена полей или их количество не соответствует полям, перечисленным в предложении SELECT, то такой запрос выполняться не будет.

Например, предположим, что вы хотите найти наибольшую сумму приобретений, полученную по каждому покупателю. Вы можете сделать раздельный запрос для каждого из них, выбрав MAX (SSum) из таблицы продаж для каждого значения поля BNum. Но GROUP BY позволяет поместить их все в одну команду:

SELECT BNum, MAX(SSum) FROM Sells GROUP BY BNum

Результат запроса выглядит следующим образом:

Bnum MAX OF SSum
5 6700
2 192000
3 1000
1 100000

Содержание