Пример 3. Для каждого корпуса подсчитать количество находящихся в нем кафедр.
SELECT NUM_KORPUSA AS “Корпус”,
СOUNT(*) AS "K-вo кафедр"
FROM KAFEDRA
GROUP BY NUM_KORPUSA ;
Пример 4. Вывести среднее значение среди минимальных и максимальных ставок для каждой группы преподавателей, занимающих одну должность, а также минимальное и максимальное значения среди средних ставок.
SELECT AVG(MIN(Salary)) AS AVG_MIN,
AVG(MAX(Salary)) AS AVG_MAX,
MIN(AVG(Salary)) AS MIN_AVG,
MAX(AVG(Salary)) AS MAX_AVG
FROM TEACHER
GROUP BY Dolgnost;
Пример 5. Вывести номера кафедр, у которых суммарное количество работающих профессоров более 1.
SELECT KOD_kafedru as "Номер кафедры" ,Count(*) as "Кол-во профессоров на кафедре"
FROM TEACHER
WHERE dolgnost='профессор'
GROUP BY KOD_kafedru
having count(dolgnost) > 1 ;
Пример 6. Вывести названия кафедр факультета математики и информатики, на которых работают один и более профессоров. Указать также количество профессоров и их суммарную зарплату.
SELECT d.Name_kafedru, Count(*), SUM(t.salary + t.Rise)
FROM FACULTET f, KAFEDRA d, TEACHER t
WHERE f.KOD_FACULTETA = d.KOD_FACULTETA AND
d.KOD_kafedru = t.KOD_kafedru AND
LOWER(f.Name_faculteta) = 'математики и информатики' AND
LOWER(t.Dolgnost ) = 'профессор'
GROUP BY d.Name_kafedru
HAVING COUNT(*) > 0;
Пример 7. Если суммарная зарплата всех ассистентов превышает 2500, вывести их среднюю ставку, среднюю надбавку и суммарную зарплату.
SELECT AVG(Salary), AVG(Rise), SUM(Salary + Rise)
FROM TEACHER
WHERE LOWER(Dolgnost ) = 'ассистент'
HAVING SUM(Salary + Rise) > 2500;
Пример выполнения задания для предметной области «Запись на прием»:
Для выполнения нескольких операций с данными выберем таблицы в рассматриваемой базе данных. Поочередно рассмотрим агрегатные функции разных групп.
Рис. 11.1. Применение агрегатных функций.
Как можно увидеть в результате получаем только одно значение.
В следующем примере показано как можно применять агрегатные функции внутри других функций.
Рис. 11.2. Применение агрегатных функций внутри других функций.
Рассмотрим в таблице visit атрибут price. В простом запросе получим следующий результат. Применив агрегатную функцию avg(), в экране видим среднее значение цен имеющихся в указанном столбце этой функции.
Рис. 11.3. Применение агрегатной функции с where.
Такие запросы можно сортировать по конкретному условию. Допустим надо найти средную затрату каждого пациента. Можно увидеть два варианта, как можно этот запрос написать. Второй вариант запроса лучше.
Do'stlaringiz bilan baham: |