Правила выполнения запросов с группировкой
На запросы, в которых используется группировка, накладываются ограничения. В список возвращаемых столбцов запроса с группировкой всегда входят столбец (столбцы) группировки и одна или несколько агрегатных функций. Таким образом, возвращаемым столбцом может быть:
– константа;
– агрегатная функция, возвращающая одно значение для всех строк, входящих в группу;
– столбец группировки, который по определению имеет одно и то же значение во всех строках группы;
– выражение, включающее в себя перечисленные выше элементы.
Запросы с группировкой и с условиями отбора групп выполняются следующим образом.
1. Взять таблицу, указанную в предложении FROM.
2. Если имеется предложение WHERE, применить заданное в нем условие отбора к каждой строке таблицы. Если при этом получается значение TRUE, то текущая строка добавляется в результирующую таблицу, если получается значение FALSE, то строка отбрасывается.
3. Если имеется предложение GROUP BY, разделить строки таблицы таким образом, чтобы строки в каждой группе имели одинаковые значения в столбцах группировки (т.е. в столбцах, указанных за ключевым словом GROUP BY).
4. Если имеется предложение HAVING, применить заданное в нем условие к каждой группе и оставить в результирующей таблице те группы, для которых это условие выполняется.
5. Для каждой из оставшихся групп строк вычисляются значения агрегатных функций, указанных в предложении SELECT. При этом для каждой группы формируется одна строка, содержащая значения столбцов группировки и значения агрегатных функций, указанных в предложении SELECT.
Дата добавления: 2015-02-03; просмотров: 958;