OpenU.Ru
Запросы могут производить обобщенную групповую обработку значений полей. Это осуществляется с помощью агрегатных функций. Агрегатные функции производят одиночное значение для всей группы таблицы. В SQL предусмотрены следующие агрегатные функции:
Агрегатные функции используются подобно именам полей в предложении SELECT запроса, но с одним исключением: они берут имена полей в качестве аргумента. Только числовые поля могут использоваться с SUM и AVG. С COUNT, MAX, и MIN могут использоваться и числовые, и символьные поля. При использовании с символьными полями MAX и MIN будут транслировать их в эквивалент ASCII. Это означает, что MIN будет выбирать первое, а MAX последнее значение в алфавитном порядке.
Чтобы найти общую сумму продаж в таблице продаж, мы должны написать следующий запрос:
SELECT SUM(SSum) FROM Sells
В результате получим:
SUM OF SSum |
359700 |
Теперь подсчитаем количество покупок. Для этого напишем запрос с использованием агрегатной функции COUNT:
SELECT COUNT(SNum) FROM Sells
В результате получим:
COUNT OF SNum |
5 |
Этот запрос подсчитал количество непустых значений в поле SNum таблицы Sells. Если же мы перепишем запрос в следующем виде:
SELECT COUNT(SDate) FROM Sells
То в результате получим:
COUNT OF SDate |
4 |
Различные результаты запросов при вычислении, казалось бы, одного и того же, получены, потому что одно из значений поля SDate имеет пустое значение (NULL). Будьте внимательны при использовании таких запросов.