1 / 16

Язык SQL

Язык SQL. Применение агрегатных функций и вложенных запросов в операторе выбора. Агрегатные функции.

shima
Télécharger la présentation

Язык SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Язык SQL Применение агрегатных функций и вложенных запросов в операторе выбора

  2. Агрегатные функции

  3. Рассмотрим базу данных, которая моделирует сдачу сессии в некотором учеб­ном заведении, Пусть она состоит из трех отношении R1, R2, Rз- Будем считать, что они представлены таблицами R1, R2 и R3 соответственно. • R1 =(ФИО, Дисциплина, Оценка); R2 = (ФИО, Группа); R3 = (Группы, Дисциплина )

  4. Пример

  5. Пример с Count() • Посчитать количество 2-к за экзамен «базы данных» SELECT “количество 2-к =” count(*) FROM R1 WHERE Дисциплина =“Базы данных” AND “Оценка” = 2 • Результат Количесто 2-к = 2

  6. Группировки

  7. Рассмотрим подробно, как работает этот запрос

  8. Результат

  9. определить для каждой груп­пы и каждой дисциплины количество успешно сдавших экзамен и средний балл по дисциплине.

  10. Результат

  11. Отбор групп • Построим запрос, который выводит группы, в которых по одной дисциплине на экзаменах получено больше одной двойки

  12. БД Банк • F = (N, ФИО, Филиал, ДатаОткрытия, ДатаЗакрытия, Остаток); • Q = (Филиал, Город); • Например, предположим, что мы хотим найти суммарный остаток на счетах филиалах. • SELECT SUM(Oстаток) FROM F • GROUP BY Филиал;

  13. Особенности HAVING • Аргументы в предложении HAVING подчиняются тем же самым правилам, что и в предложении SELECT, где используется GROUP BY. Они должны иметь одно значение на группу вывода. Пример неправильного запроса SELECT Филиал, SUM(Остаток) FROM F GROUP ВУФилиал HAVING ДатаОткрытия = 27/12/1999:

  14. Особенности Having • предложение HAVING должно ссылаться только на агрегаты и поля, выбранные GROUP BY. Имеется правильный способ сделать вышеупомянутый запрос: SELECT Филиал, SUM(Остаток) - FROM F WHERE ДатаОткрытия = '27/12/1999' GROUP BY Филиал; Смысл данного запроса следующий: найти сумму остатков по каждому филиалу счетов, открытых 27 декабря 1999 года.

  15. Пример • суммарные остатки на счетах филиалов в Санкт-Петербурге, Пскове и Урюпинске: SELECT Филиал, SUM(Ocтaток) FROM F, Q WHERE F.Филиал = Q.Филиал GROUP BY Филиал HAVING Филиал IN («Санкт-Петербург». «Псков», «Урюпинск»);

More Related