Управл_данными / 10-func
.pdfСтатистические функции
Часто бывает необходимо просуммировать данные без их выборки, и в SQL предусмотрены для этого специальные функции. SQL-запросы с этими функциями часто используются с целью выборки данных для анализа и создания отчетов.
Примерами таких выборок могут послужить:
1)определение числа строк в таблице (либо числа строк, которые удовлетворяют какому-то условию или содержат определенное значение);
2)получение суммы по набору строк в таблице;
3)поиск наибольшего, наименьшего и среднего значений из столбца таблицы (из всех или из каких-то конкретных строк)
11
Статистические SQL-функции
Функция |
Описание |
AVG ( ) |
Возвращает среднее значение столбца |
COUNT ( ) |
Возвращает число строк в столбце |
МАХ ( ) |
Возвращает самое большое значение в |
|
столбце |
MIN ( ) SUM ( )
Возвращает самое маленькое значение в столбце
Возвращает сумму значений столбца
12
Подсчет количества строк
Количество всех строк в таблице Студент:
SELECT COUNT(*) FROM Студент
Количество строк в таблице, в которых Адрес != NULL:
SELECT COUNT( Адрес ) FROM Студент
SELECT COUNT( * ) AS кол_во
FROM Студент
WHERE Год_р = 1992
Все запросы выдают ответную таблицу из одной строки!
13
Несколько статистических функций в одном запросе
SELECT MAX(Цена) AS Макс_цена,
MIN(Цена) AS Мин_цена,
AVG(Цена) AS Средн_цена,
SUM(Цена*Колич) AS Сумма
FROM Продукт
WHERE Дата_Поступления >= NOW( ) - 365
NOW( ) – Функция, возвращающая текущую дату (Ms Access)
14
DISTINCT и ALL
SELECT COUNT( ALL Год_рожд ) FROM Студент
SELECT COUNT( DISTINCT Год_рожд ) FROM Студент
15
Группировка данных
16
Создание групп
Группирование дает возможность разделить все данные на логические наборы, благодаря чему становится возможным выполнение статистических вычислений отдельно по каждой группе.
Группы создаются с помощью предложения GROUP BY оператора SELECT.
SELECT Год_рожд, COUNT(*) AS кол_во
FROM Студент
GROUP BY Год_рожд
Вышеприведенный SELECT-запрос предписывает группировать данные
и затем выполнять вычисление по каждой группе, а не по всему набору результатов
17
Правила использования GROUP BY
В предложениях GROUP BY можно указывать несколько полей. Это позволяет вкладывать группы одна в другую
Каждый столбец, указанный в предложении GROUP BY, должен быть столбцом выборки или выражением.
За исключением статистических функций, каждый столбец, упомянутый в операторе SELECT, должен быть представлен в предложении GROUP BY.
Если столбец, подлежащий группированию, содержит строку со значением NULL, оно будет возвращено в качестве группы. Если имеется несколько строк со значениями NULL, они будут сгруппированы вместе
Предложение GROUP BY должно следовать после предложения WHERE и до какого-либо предложения ORDER BY
18
Группировка. Пример 1
Пусть имеется таблица городов :
Нужно узнать какие регионы представлены в данной таблице.
SELECT Регион FROM Города GROUP BY Регион
В результате получим ответную (результирующую) таблицу:
19
Группировка. Пример 2
Можно выполнить группировку по любому другому полю, например по площади:
SELECT Площадь FROM Города GROUP BY Площадь
В результате получим:
20