Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум SQL.rtf
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
929 Кб
Скачать
☆

Итоговая функция: sum

В определенной инструкцией SELECT или подчиненным запросом логической таблице она создает столбец, содержащий сумму значений выражения или заданного столбца. Чтобы вычислить сумму для каждой группы строк, выбран­ной из базовых таблиц или запросов, используйте предложение GROUP BY.

Синтаксис:

SUM (выражение)

Пример №16. По таблице Академическая справка подсчитайте общее количество часов на каждого преподавателя

Решение

SELECT [Академичекая справка].ФИОпреподавателя, Sum([Академичекая справка].Количествочасов) AS [Итого часов]

FROM [Академичекая справка]

GROUP BY [Академичекая справка].ФИОпреподавателя

ORDER BY [Академичекая справка].ФИОпреподавателя;

Итоговая функция: var, varp

В определенной инструкцией SELECT или подчиненным запросом логической таблице они создают столбец, содержащий дисперсию значений выражения или заданного столбца. Чтобы вычислить дисперсию для каждой группы строк, выбранной из базовых таблиц или запросов, используйте предложение GROUP BY. VAR дает несмещенную оценку дисперсии генеральной совокупности (сумма квадратов отклонений значений от среднего значения, деленная на N-1, где N - число значений в выборке), a VARP -- смещенную оценку (сумма квадратов отклонений значений от среднего значения, деленная на N).

Синтаксис:

{VAR I VARP} {выражение)

Предложение having

Определяет группы строк, которые включаются в логическую таблицу (набор записей), определяемую инструкцией SELECT. Условие отбора применяется к столбцам, указанным в предложении GROUP BY, к столбцам итоговых функ­ций или к выражениям, содержащим итоговые функции. Если некоторая группа не удовлетворяет условию отбора, то она не включается в логическую таблицу.

Синтаксис:

HAVING условие-отбора

Пояснения:

Если вы не включили предложение GROUP BY в запрос, списоклыбора должен формироваться с использованием итоговых функций: AVG, COUNT, MAX, MIN, STDEV, STDEVP, SUM, VAR и VARP.

Разница между предложениями HAVING и WHERE заключается в том, что условие отбора, заданное в предложении WHERE, применяется к отдельным записям перед объединением их в группы, а условие отбора предложения HAVING применяется к группам строк.

Если вы поставите предложение GROUP BY перед предложением HAVING, условие отбора будет применяться к каждой из групп, сформированных на основе совпадения значений в заданных столбцах. Если вы не включите предложение GROUP BY в запрос, то условие отбора будет применяться ко всей логической таблице, определенной инструкцией SELECT.

Пример №17. По таблице Академическая справка подсчитайте ьтетов количество студентов, сдававших экзамены на фак=”ЭКФ”

Решение

SELECT [Академичекая справка].фак, Count([Академичекая справка].фиоСтудента) AS [Количество сдававших]

FROM [Академичекая справка]

GROUP BY [Академичекая справка].фак

HAVING ((([Академичекая справка].фак)="ЭКФ"))

ORDER BY [Академичекая справка].фак;