Использование группировки данных при организации запросов

Предыдущая567891011121314151617181920Следующая

Группировка данных при организации запросов используется для объединения нескольких строк, включаемых в запрос, в одну.

Для выполнения группировки данных в SQL-запросах используется оператор GROUP BY. Оператор GROUP BY перекомпоновывает данные, включаемые в результирующую таблицу. Указание на группировку данных в SQL-запросе осуществляется после ключевого слова FROM. Сам процесс группировки данных при выполнении выборки информации из базы данных в разделы или группы заключается в объединении в одну группу всех строк, которые имеют одно и то же значение поле, указанное после оператора GROUP BY.

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

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

Использование конструкции GROUP BY не предполагает одновременного применения в SQL-запросах и оператора ORDER BY. Для упорядочения результата, полученного после выполнения SQL-запроса, конструкцию ORDER BY необходимо разместить после оператора, указывающего на группировку данных.

Пусть требуется вычислить общий объем покупок для каждого товара, т. е. для каждого товара необходимо определить код этого товара и общий объем покупок. SQL-запрос, соответствующий данному условию, можно представить виде:

SELECT kod, SUM(QUANT)

FROM ORDSALE

GROUP BY kod

Использование группировки данных совместно с условием

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

Например, SQL-запрос

SELECT kod, SUM(QUANT)

FROM ORDSALE

WHERE CUSTOMERNO 23

GROUP BY kod

служит для выборки информации о товаре, проданном покупателям кроме покупателя с кодом 23.

Строки, не удовлетворяющие условию WHERE, исключаются перед группировкой данных.



Конструкции GROUP BY свойственно ограничение, которое заключается в том, что она работает только на одном уровне. Невозможно разбить каждую из групп на группы более низкого уровня, а затем применить некоторую стандартную функцию, например, SUM или AVERAGE на каждом уровне группировки.


5022219095100087.html
5022243663695917.html
    PR.RU™