Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемВладислав Деревягин
1 Язык SQL Применение агрегатных функций и вложенных запросов в операторе выбора
2 Агрегатные функции
3 Рассмотрим базу данных, которая моделирует сдачу сессии в некотором учебном заведении, Пусть она состоит из трех отношении R1, R2, Rз- Будем считать, что они представлены таблицами R1, R2 и R3 соответственно. R1 =(ФИО, Дисциплина, Оценка); R2 = (ФИО, Группа); R3 = (Группы, Дисциплина ) R1 =(ФИО, Дисциплина, Оценка); R2 = (ФИО, Группа); R3 = (Группы, Дисциплина )
5 Пример
6 Пример с Count() Посчитать количество 2-к за экзамен «базы данных» Посчитать количество 2-к за экзамен «базы данных» SELECT количество 2-к = count(*) FROM R1 WHERE Дисциплина =Базы данных AND Оценка = 2 Результат Результат Количесто 2-к = 2
7 Группировки
8 Рассмотрим подробно, как работает этот запрос
9 Результат
10 определить для каждой группы и каждой дисциплины количество успешно сдавших экзамен и средний балл по дисциплине.
11 Результат
12 Отбор групп Построим запрос, который выводит группы, в которых по одной дисциплине на экзаменах получено больше одной двойки Построим запрос, который выводит группы, в которых по одной дисциплине на экзаменах получено больше одной двойки
13 БД Банк F = (N, ФИО, Филиал, ДатаОткрытия, ДатаЗакрытия, Остаток); F = (N, ФИО, Филиал, ДатаОткрытия, ДатаЗакрытия, Остаток); Q = (Филиал, Город); Q = (Филиал, Город); Например, предположим, что мы хотим найти суммарный остаток на счетах филиалах. Например, предположим, что мы хотим найти суммарный остаток на счетах филиалах. SELECT SUM(Oстаток) FROM F SELECT SUM(Oстаток) FROM F GROUP BY Филиал; GROUP BY Филиал;
14 Особенности HAVING Аргументы в предложении HAVING подчиняются тем же самым правилам, что и в предложении SELECT, где используется GROUP BY. Они должны иметь одно значение на группу вывода. Аргументы в предложении HAVING подчиняются тем же самым правилам, что и в предложении SELECT, где используется GROUP BY. Они должны иметь одно значение на группу вывода. Пример неправильного запроса SELECT Филиал, SUM(Остаток) FROM F GROUP ВУ Филиал HAVING ДатаОткрытия = 27/12/1999:
15 Особенности Having предложение HAVING должно ссылаться только на агрегаты и поля, выбранные GROUP BY. Имеется правильный способ сделать вышеупомянутый запрос: предложение HAVING должно ссылаться только на агрегаты и поля, выбранные GROUP BY. Имеется правильный способ сделать вышеупомянутый запрос: SELECT Филиал, SUM(Остаток) - FROM F WHERE ДатаОткрытия = '27/12/1999' GROUP BY Филиал; Смысл данного запроса следующий: найти сумму остатков по каждому филиалу счетов, открытых 27 декабря 1999 года.
16 Пример суммарные остатки на счетах филиалов в Санкт-Петербурге, Пскове и Урюпинске: суммарные остатки на счетах филиалов в Санкт-Петербурге, Пскове и Урюпинске: SELECT Филиал, SUM(Ocтaток) FROM F, Q WHERE F.Филиал = Q.Филиал GROUP BY Филиал HAVING Филиал IN («Санкт-Петербург». «Псков», «Урюпинск»);
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.