Агрегатная функция AVG () вычисляет среднее всех значений, содержащихся в столбце. Данные, содержащиеся в столбце, должны иметь числовой тип. Поскольку функция AVG () вначале суммирует все значения, содержащиеся в столбце, а затем делит сумму на число этих значений, возвращаемый ею результат может иметь не такой тип данных, как столбец. Например, если применить функцию AVG () к столбцу целых чисел, результат будет либо десятичным числом, либо числом с плавающей запятой-в зависимости от используемой СУБД.
Вычислить среднее значение цены и количества в таблице «Остатки».
SELECT AVG(ЦЕНА),AVG(КОЛИЧЕСТВО)
FROM ОСТАТКИ
Вычисление количества значений в столбце (COUNT)
Агрегатная функция COUNT () подсчитывает количество значений в столбце. При этом тип данных может быть любым. Функция COUNT () всегда возвращает целое число независимо от типа данных столбца.
Вывести количество фирм, являющихся ЗАО.
SELECT COUNT(*)
FROM КЛИЕНТ
WHERE НАЗВАНИЕ LIKE ‘%ЗАО%’
Запросы с группировкой (предложение GROUP BY)
|
|
Итоговые запросы напоминают итоговую информацию, находящуюся обычно в конце отчета. Эти запросы «сжимают» подробные данные, содержащиеся в отчете, в одну строку итоговых результатов. Но, как известно, в отчетах иногда используются также промежуточные итоги. И точно так же бывает необходимо получать промежуточные итоги результатов запроса. Эту возможность предоставляет предложение GROUP BY.
Вычислить оборот за каждый день в течение месяца.
SELECT ДАТА_ДОК, SUM (КОЛ-ВО*ЦЕНА)
FROM ПЕРЕМЕЩЕНИЕ
WHERE ДАТА_ДОК BETWEEN ‘1.01.2000’ AND ’31.01.2000’
GROUP BY ДАТА_ДОК
ORDER BY ДАТА_ДОК
Какова средняя цена для каждой материальной ценности.
SELECT IDN_МАТ.ЦЕН, AVG(ЦЕНА)
FROM ПЕРЕМЕЩЕНИЕ
GROUP BY IDN_МАТ.ЦЕН
Как это видно из приведенных примеров, в предложении GROUP BY обязательно перечисляются те поля, которые в списке возвращаемых столбцов указываются без агрегатных функций, то есть по этим полям производится группировка.