Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Группирование результатов (фраза GROUP ВУ)

Приведенные выше примеры сводных данных подобны итоговым строкам, обычно размещаемым в конце отчетов. В итогах все детальные данные отчета сжимаются в одну обобщающую строку. Однако очень часто в отчетах требуется формировать и промежуточные итоги. Для этой цели в операторе SELECT может указываться фраза GROUP BY. Запрос, в котором присутствует фраза GROUP BY, называется группирующим запросом, поскольку в нем группируются данные, полученные в результате выполнения операции SELECT, после чего для каждой отдельной группы создается единственная суммарная строка. Столбцы, перечисленные во фразе GROUP BY, называются группируемыми столбцами. Предложение SELECT может включать только следующие типы элементов:

имена столбцов;

обобщающие функции;

константы;

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

Все имена столбцов, приведенные в списке предложения SELECT, должны присутствовать иво фразе GROUP BY — за исключением случаев, когда имя столбца используется в обобщающей функции. Если совместно с фразой GROUP BY используется предложение WHERE, то оно обрабатывается первым, а группированию подвергаются только те строки, которые удовлетворяют условию поиска.

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

Пример 9.16. Использование фразы GROUP BY.

Определить количество персонала, работающего в каждом из отделений компании, а также их суммарную заработную плату.

SELECT KodB, COUNT(KodS) AS C, SUM(ZP) AS SZP FROM S
GROUP BY KodB
ORDER BY KodB;

KodB C SZP
B3    
B5    
B7    

Концептуально, при обработке этого запроса выполняются следующие действия.

1. Строки таблицы S распределяются в группы в соответствии со значениями в столбце номера отделения компании. В пределах каждой из групп, оказываются данные обо всем персонале одного из отделений компании. В нашем примере будут созданы три группы.

KodB KodS ZP
B3 B3 B3 S37 S14 S05  
B5 B5 S41 S21  
B7 S09  

2. Для каждой из групп вычисляется общее количество строк, равное количеству работников в отделении, а также сумма значений в столбце ZP. Затем генерируется единственная сводная строка для всейгруппы исходных строк.

3. Наконец, полученные строки результирующей таблицы сортируются в порядке возрастания номера отделения.

 

<== предыдущая лекция | следующая лекция ==>
Использование обобщающих функций языка SQL | Интерактивная сторона общения
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 310; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.