Справка по SQL | страница 7
>SELECT *
>FROM Pc
>WHERE price IS NULL;
Получение итоговых значений
Как узнать количество моделей ПК, выпускаемых тем или иным поставщиком? Как определить среднее значение цены на компьютеры, имеющие одинаковые технические характеристики? На эти и многие другие вопросы, связанные с некоторой статистической информацией, можно получить ответы при помощи итоговых (агрегатных) функций. Стандартом предусмотрены следующие агрегатные функции:
Функция | Описание |
---|---|
COUNT(*) | Возвращает количество строк источника записей. |
COUNT() | Возвращает количество значений в указанном столбце. |
SUM() | Возвращает сумму значений в указанном столбце. |
AVG() | Возвращает среднее значение в указанном столбце. |
MIN() | Возвращает минимальное значение в указанном столбце. |
MAX() | Возвращает максимальное значение в указанном столбце. |
Все эти функции возвращают единственное значение. При этом функции COUNT, MIN и MAX применимы к любым типам данных, в то время как SUM и AVG используются только для числовых полей. Разница между функцией COUNT(*) и COUNT() состоит в том, что вторая при подсчете не учитывает NULL-значения.
Пример. Найти минимальную и максимальную цену на персональные компьютеры:
>SELECT MIN(price) AS Min_price, MAX(price) AS Max_price
>FROM PC;
Результатом будет единственная строка, содержащая агрегатные значения:
Min_price | Max_price |
---|---|
350.0 | 980.0 |
Пример. Найти имеющееся в наличии количество компьютеров, выпущенных производителем А:
>SELECT COUNT(*) AS Qty
>FROM PC
>WHERE model IN
> (SELECT model
> FROM Product
> WHERE maker = 'A');
В результате получим:
Qty |
---|
7 |
Пример. Если же нас интересует количество различных моделей, выпускаемых производителем А, то запрос можно сформулировать следующим образом (пользуясь тем фактом, что в таблице Product каждая модель записывается один раз):
>SELECT COUNT(model) AS Qty_model
>FROM Product
>WHERE maker = 'A';
Совпадение результатов совершенно случайно, т.к. в базе данных количество компьютеров производителя А оказалось равным числу выпускаемых им моделей:
Qty_model |
---|
7 |
Пример. Найти количество имеющихся различных моделей, выпускаемых производителем А. Запрос похож на предыдущий, в котором требовалось определить общее число моделей, выпускаемых производителем А. Здесь же требуется найти число различных моделей в таблице PC (т.е. имеющихся в продаже).
Для того, чтобы при получении статистических показателей использовались только уникальные значения, при аргументе агрегатных функций можно использовать параметр DISTINCT. Другой