- •Содержание
- •Тема 1:простые запросы...........................................................................................................................
- •Тема 2: выражения в запросах.
- •Введение.
- •Лабораторная работа № 1. Простые запросы
- •Соглашение при описании синтаксиса sql
- •Синтаксис инструкции select в microsoft access
- •Решение (Второй способ)
- •Решение
- •Создание простых запросов задание 1.
- •Решение (Первый способ)
- •Исключение дубликатов строк
- •Решение
- •Решение
- •Предложение order by
- •Решение
- •Решение
- •Выбор строк (предложение where)
- •Сравнение
- •Решение
- •Диапазон
- •Решение
- •Решение
- •Решение
- •Решение
- •Итоговая функция: avg
- •Решение
- •Итоговая фунуция: count
- •Итоговая функция: sum
- •Решение
- •Итоговая функция: var, varp
- •Предложение having
- •Решение
- •Лабораторная работа № 2. Выражения в запросах.
- •Типы данных sql
- •(Национальные символы)
- •Bit (битовый)
- •Exact numeric (точный цифровой)
- •Approximate numeric (приблизительный цифровой)
- •Datetame (дата/время)
- •Interval (интервал)
- •Типы выражений
- •Задание 2.
- •Решение
- •Ввод параметров
- •Решение
- •Изменение базы данных с помощью запросов.
- •Инструкция delete (запрос на удаление)
- •Решение
- •Инструкция insert (запрос на добавление)
- •Решение
- •Инструкция select ... Into (запрос на создание таблицы)
- •Решение
- •Инструкция update (запрос на обновление)
- •Многотабличные ворпосы.
- •Список литературы
Итоговая функция: 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 [Академичекая справка].фак;
