Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Синтаксис. Дополнительные сведения




Предложение HAVING

Дополнительные сведения

Предложение GROUP BY является необязательным.

Итоговые значения не рассчитываются, если инструкция SELECT не содержит статистической функции SQL.

Значения Null, которые находятся в полях, заданных в предложении GROUP BY, группируются и не опускаются. Однако статистические функции SQL не обрабатывают значения Null.

Используйте предложение WHERE для исключения записей из группировки, а предложение HAVING для применения фильтра к записям после группировки.

 

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


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

SELECT Группа, Count(Группа) as Колич, Avg(Эк) as [Ср б Эк], Avg(Инф) as [Ср б Инф]

INTO [Итоговая ведомость]

FROM Ведомость

GROUP BY Группа;

Ведомость Итоговая ведомость

Фамилия Группа Эк Инф   Группа Колич Ср б Эк Ср б Инф
АНДРЕЕВ             4,2 4,4
БАРАБАНОВ             3,9 3,3
БАРАНОВ             3,8 4,0
БРАГИН             4,1 3,8
БУБНОВ             4,5 3,9
ВЕРБИЦКИЙ        
ВОДОЛАЗСКИЙ        
ГЛОТОВ        
ГОЛОВИН        
………………….. …… ….. …..  
ГРИГОРОВИЧ        
ДАНЦКЕР        

Следующий пример подсчитывает количество студентов в МГУ на обучающимся на каждом факультете по курсам обучения

 

SELECT Факультет, Курс, Count(Фамилия) as Количество

FROM Ведомость

GROUP BY Факультет, Курс;

Ведомость

Фамилия Факультет Курс   Факультет Курс Количество
АНДРЕЕВ ММ     MM    
БАРАБАНОВ ВМК     MM    
БАРАНОВ ММ     MM    
БРАГИН ЭФ     MM    
БУБНОВ ММ     MM    
ВЕРБИЦКИЙ ЭФ     BMK    
ВОДОЛАЗСКИЙ ВМК     BMK    
ГЛОТОВ ЭФ     BMK    
ГОЛОВИН ММ     BMK    
…………………..   …..   BMK    
ГРИГОРОВИЧ ВМК     ЭФ    
ДАНЦКЕР ЭФ     ЭФ    

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

SELECT списокПолей
FROM таблица
WHERE условиеОтбора
GROUP BY группируемыеПоля
HAVING условиеГруппировки

Ниже перечислены аргументы инструкции SELECT, содержащей предложение HAVING:

Элемент Описание
   
группируемыеПоля Имена полей (до 10), которые используются для группировки записей. Порядок имен полей в аргументе группируемыеПоля определяет уровень группировки для каждого из этих полей.  
условиеГруппировки Выражение, определяющее, какие сгруппированные записи следует отображать.

 

Предложение HAVING является необязательным.

Предложение HAVING похоже на предложение WHERE, которое определяет, какие записи должны быть отобраны. После того как записи будут сгруппированы с помощью предложения GROUP BY, предложение HAVING указывает, какие из полученных записей должны быть отобраны:

SELECT КодТипа, Sum(НаСкладе)

FROM Товары

GROUP BY КодТипа

HAVING Sum(НаСкладе) > 100;

Предложение HAVING может содержать до 40 выражений, связанных логическими операторами, такими как And и Or.


Инструкция SELECT [предикат]

Предикат позволяют отобрать записи среди выбранных с помощью запроса на языке SQL.

 

Элемент Описание
предикат Один из следующих предикатов отбора: ALL, DISTINCT, DISTINCTROW TOP. Предикаты используются для ограничения числа возвращаемых записей. Если они отсутствуют, по умолчанию используется предикат ALL.  



Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 359; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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