- •Содержание
- •11.1. Расчет результирующих столбцов на основе арифметических выражений.
- •11.2. Агрегатные функции.
- •11.3. Использование группировок записей (group by).
- •11.4. Предложение having – наложение ограничений на группировку записей.
- •11.5. Предложение where. Задание сложных условий поиска.
- •11.5.1. Использование логических выражений.
- •11.5.2. Сравнение значения столбца с результатом значения выражения.
- •11.5.3. Использование функции between.
- •11.5.4. Использование in (список значений).
- •11.5.5. Использование функции starting.
- •11.5.6. Использование функции containing.
- •11.5.7. Использование функции upper.
- •11.5.8. Использование функции like.
- •11.5.9. Использование функции cast.
- •11.5.10. Использование значения null в условиях поиска.
- •Контрольные вопросы:
11.2. Агрегатные функции.
Агрегатные или статистические функции предназначены для выдачи итоговых значений. К ним относятся функции:
COUNT(<выражение>) – подсчитывает число вхождений значения выражения во все записи результирующего набора данных;
SUM(<выражение>) – суммирует значения выражения;
AVG(<выражение> ) - находит среднее значение выражения;
МАХ(<выражение>) – определяет максимальное значение выражения;
МIN(<выражение>) - определяет минимальное значение выражения.
ПРИМЕР
Определите, стоимость скольких книг превышает 25 гривень.
SELECT COUNT (*) AS count
FROM BookInventaryNumbers
WHERE Cost > 25
Ограничение на подсчет количества книг, стоимость которых превышает 25 гривен, реализуется посредством использования предложения WHERE. Общее количество книг, отвечающих указанному условию, может быть определено с помощью обобщающей функции COUNT.
Результаты выполнения запроса представлены в таблице 11.3.
Таблица 11.3
Count |
2 |
Ограничение на подсчет количества книг, стоимость которых превышает 25 гривен, реализуется посредством использования предложения WHERE.
Если из группы одинаковых записей нужно учитывать только одну, перед выражением в скобках включают слово DISTINCT
COUNT(DISTINCT <выражение>)
Чаще всего в качестве выражения выступают имена столбцов. Выражение может вычисляться и по значениям нескольких таблиц.
ПРИМЕР
Определите, сколько различных библиотекарей выдавали книги.
SELECT COUNT (DISTINCT OutLibrarianCode) AS count
FROM BookGiveOutRecord
Общее количество записей, удовлетворяющих указанному условию, может быть определено с помощью функции COUNT без фразы DISTINCT. Однако, поскольку один и тот же библиотекарь может выдать несколько книг различным читателям, необходимо в определении функции указать ключевое слово DISTINCT – это позволяет исключить из расчета дублирующиеся значения.
Результаты выполнения запроса представлены в таблице 11.4.
Таблица 11.4
Count |
2 |
Статистическая функция SUM( ) вычисляет сумму всех значений столбца. При этом столбец должен иметь числовой тип данных (содержать целые числа, десятичные числа, числа с плавающей запятой или денежные величины). Результат, возвращаемый этой функцией, имеет тот же тип данных, что и столбец, однако точность результата может быть выше. Например, если применить функцию SUM( ) к столбцу, содержащему 16-разрядные целые числа, она может вернуть в качестве результата 32-разрядное целое число.
ПРИМЕР
Определите общую стоимость книг библиотечного фонда.
SELECT SUM(Cost) AS Cost
FROM BookInventaryNumbers
Результаты выполнения запроса представлены в табл. 11.5.
Таблица 11.5
Cost |
151.77 |
Статистические функции MIN( ), MAX( ) и AVG( ) позволяют найти соответственно наименьшее, наибольшее и среднее значения в столбце. При этом столбец может содержать числовые или строковые значения либо значения даты/времени. Результат, возвращаемый этими функциями, имеет точно такой же тип данных, что и сам столбец.
ПРИМЕР
Определите минимальную, максимальную и среднюю стоимость книг.
SELECT MIN(Cost) AS Min, MAX(Cost) AS Max, AVG (Cost) AS Avg
FROM BookInventaryNumbers
Результат выполнения запроса приведен в таблице 11.6.
Таблица 11.6
Min |
Max |
Avg |
10.10 |
56.78 |
25.30 |