Методическое пособие к лабораторным работам по курсу «База данных» Ташкент 2022
AND LOWER(t.Dolgnost ) = 'профессор' GROUP BY
Download 3.26 Mb.
|
Metodichka BD
- Bu sahifa navigatsiya:
- SELECT
- для предметной области «Запись на прием»
- Рис. 6.2.1.
AND LOWER(t.Dolgnost ) = 'профессор'
GROUP BY d.Name_kafedru HAVING COUNT(*) > 0; Фраза HAVING без GROUP BY Фраза HAVING может использоваться лишь при наличии фразы GROUP BY. Из этого правила синтаксис SQL допускает только одно исключение: когда вся таблица интерпретируется как одна группа. В этом случае в списке фразы SELECT можно использовать только константы, агрегатные функции и выражения над ними. Приведем примеры. Если суммарная зарплата всех преподавателей превышает 15 000, вывести их минимальную ставку, максимальную надбавку и суммарную зарплату. SELECT MIN(Salary), MAX(Rise), SUM(Salary + Rise) FROM TEACHER HAVING SUM(Salary + Rise) > 15000; При наличии фразы WHERE сначала производится отбор строк согласно ее условию, и только после этого применяется условие фразы HAVING. Если суммарная зарплата всех ассистентов превышает 2500, вывести их среднюю ставку, среднюю надбавку и суммарную зарплату. SELECT AVG(Salary), AVG(Rise), SUM(Salary + Rise) FROM TEACHER WHERE LOWER(Dolgnost ) = 'ассистент' HAVING SUM(Salary + Rise) > 2500; На практике фраза HAVING очень редко используется без фразы GROUP BY, изза чего такая возможность предоставляется не во всех СУБД. Пример выполнения задания для предметной области «Запись на прием»: Для выполнения нескольких операций с данными выберем таблицу. В созданной базе данных рассмотрим таблицу Visit. Рис. 6.2.1. Вывод данных таблицы “visit”. Применив команды Group by и Having можно сгруппировать данные и отсортировать по цене выше среднего. Рис. 6.2.2. Cортировка по цене выше среднего в таблице “visit”. Следует отметить, что предложение HAVING может использоваться и без предложения GROUP BY. При отсутствии предложения GROUP BY агрегатные функции применяются ко всему выходному набору строк запроса, т.е. в результате мы получим всего одну строку, если выходной набор не пуст. Таким образом, если условие на агрегатные значения в предложение HAVING будет истинным, то эта строка будет выводиться, в противном случае мы не получим ни одной строки. Рассмотрим такой запрос. Рис. 6.2.3. Применение агрегатных функции в таблице “visit”. Этот запрос показывает минимальную, максимальную и среднюю цену в таблице визитов. Далее этому запросу применим команду Having с двумя разными условиями. В первом случае имеем результат такой же как и выше. Рис. 6.2.4. Применение агрегатных функции в таблице “visit”. Во втором запросе результата нет, то есть он пустой. Это означает что в таблице нет данных удовлетворяющих условию. Далее рассмотрим запрос где используются фразы Order by, Group by и Having. Запрос составлен для того чтобы найти доход врачей, у кого количество пациентов больше одного. Download 3.26 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling