double arrow

Пример 18

Подчиненный запрос

Пример 17.

Пример 16.

Групповые функции SQL

Групповые функции необходимы для определения статистических данных на основе наборов числовых значений:

• Avg — вычисляет арифметическое среднее набора чисел, со держащихся в указанном поле запроса;

• Count — вычисляет количество выделенных записей в запросе;

• Min, Max — возвращают минимальное и максимальное значения из набора в указанном поле запроса;

• StDev, StDevPs — возвращают среднеквадратическое отклонение генеральной совокупности и выборки для указанного поля в запросе;

• Sum — возвращает сумму значений в заданном поле запроса;

• Var, VarPs — возвращает дисперсию распределения генеральной совокупности и выборки для указанного поля в запросе.

Для определения полей группирования указывается ключевое слово HAVING для заданного условия по группе при вычислении групповых значений.

SELECT Фамилия, Avg(Результат) AS Средний балл FROM Результаты GROUP BY [№ зач.книжки]

SELECT [Код дисциплины], Avg(Результаты) AS Средний балл FROM Результаты GROUP BY [Код дисциплины]

В первом случае создается список фамилий студентов с указанием среднего балла по каждому студенту, во втором случае — список кодов дисциплин и средний балл по дисциплине.

SELECT Фамилия, Avg(Peзyльтaт) AS Средний балл

FROM Результаты

GROUP BY [№ зач.книжки] HAVING Avg (Результат) >4.5

SELECT [Код дисциплины], Avg(Peзyльтaт)AS Средний балл FROM Результаты GROUP BY [Код дисциплины] HAVING Avg(Peзyльтaт)<4

В первом случае создается список фамилий студентов с указанием среднего балла по каждому студенту, выводятся фамилии тех студентов, которые имеют средний балл выше 4.5. Во втором случае выводится список кодов дисциплин со средним баллом при условии, что он ниже 4.

В инструкцию SELECT может быть вложена другая инструкция SELECT, SELECT...INTO, INSERT.. INTO, DELETE или UPDATE. Различают основной и подчиненный запросы, которые являются вложенными в основной запрос.

Подчиненный запрос можно использовать вместо выражения в списке полей инструкции SELECT или в предложениях WHERE и HAVING. Существуют три типа подчиненных запросов:

• сравнение (ANY|ALL|SOME) (инструкция);

• выражение [NOT] IN (инструкция); . [NOT] EXISTS (инструкция).

Первый тип — сравнение выражения с результатом подчиненного запроса.

Ключевые слова: ANY — каждый; ALL — все; SOME — некоторые.

SELECT * FROM Оценка WHERE [Результат] > ANY (SELECT) [результат] FROM Оценка WHERE Результат [№ зач.книжки] ="123124")

Отбираются только те записи из таблицы ОЦЕНКА, в которых значение результата больше каждой оценки студента с № зач. книжки 123124.

Второй тип — выражение, которое должно быть найдено в наборе записей, являющихся результатом выполнения подчиненного запроса.


Сейчас читают про: