double arrow

Правила выполнения запросов с группировкой

На запросы, в которых используется группировка, накладываются ограничения. В список возвращаемых столбцов запроса с группировкой всегда входят столбец (столбцы) группировки и одна или несколько агрегатных функций. Таким образом, возвращаемым столбцом может быть:

– константа;

– агрегатная функция, возвращающая одно значение для всех строк, входящих в группу;

– столбец группировки, который по определению имеет одно и то же значение во всех строках группы;

– выражение, включающее в себя перечисленные выше элементы.

Запросы с группировкой и с условиями отбора групп выполняются следующим образом.

1. Взять таблицу, указанную в предложении FROM.

2. Если имеется предложение WHERE, применить заданное в нем условие отбора к каждой строке таблицы. Если при этом получается значение TRUE, то текущая строка добавляется в результирующую таблицу, если получается значение FALSE, то строка отбрасывается.

3. Если имеется предложение GROUP BY, разделить строки таблицы таким образом, чтобы строки в каждой группе имели одинаковые значения в столбцах группировки (т.е. в столбцах, указанных за ключевым словом GROUP BY).

4. Если имеется предложение HAVING, применить заданное в нем условие к каждой группе и оставить в результирующей таблице те группы, для которых это условие выполняется.

5. Для каждой из оставшихся групп строк вычисляются значения агрегатных функций, указанных в предложении SELECT. При этом для каждой группы формируется одна строка, содержащая значения столбцов группировки и значения агрегатных функций, указанных в предложении SELECT.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: