Агрегирующие функции в инструкции SELECT
В инструкциях языка ANSI SQL предусмотрены так называемые <$I[]агрегирующая функция> агрегирующие [3] функции, которые определяют количество записей, вычисляют суммы всех значений полей в наборе, находят минимальные или максимальные, а также средние значения. К агрегирующим функциям относятся функции <$I[] COUNT в SQL-инструкции SELECT > COUNT, <$I[] SUM в SQL-инструкции SELECT > SUM, <$I[] MAX в SQL-инструкции SELECT > MAX, <$I[] MIN в SQL-инструкции SELECT > MIN и <$I[] AVG в SQL-инструкции SELECT > AVG. Функция <$I[] COUNT в SQL-инструкции SELECT > COUNT используется для определения количества записей в запросе. Например, в окне на рис. 15.19 введена инструкция для вычисления количества записей в таблице Товары, а на рис. 15.20 показан результат выполнения этой инструкции. Рис. 15. 19 Окно с инструкцией SELECT для определения общего количества записей в таблице Рис. 15.20 Результат определения общего количества записей в таблице Следующая инструкция вычисляет количество записей, в которых значение поля Цена1 меньше 100. На рис. 15.21 приведен результат выполнения этой инструкции. SELECT COUNT(НаимТовара) AS [Всего наименований] FROM Товары WHERE Цена1 < 100 Рис. 15.21 Результат определения количества записей в таблице при определенном условии Функция <$I[] SUM в SQL-инструкции SELECT > SUM позволяет для группы строк вычислить итоговую сумму значений некоторого поля, например (результат — на рис. 15.22): SELECT SUM(Количество) as [Общее количество товаров] FROM Запасы Рис. 15.22 Результат вычисления итоговой суммы значений некоторого поля При использовании функции SUM можно ограничить количество записей запроса при помощи некоторого условия, например (результат — на рис. 15.23): SELECT SUM(Количество) AS [Количество на складе] FROM Запасы WHERE КодПодразделения='0429' Рис. 15.23 При использовании функции SUM можно ограничить количество записей запроса Функция <$I[] AVG в SQL-инструкции SELECT > AVG в инструкции SELECT позволяет найти среднее значение для строк, входящих в запрос. Например, следующая инструкция определяет среднюю цену на товары, наименования которых начинаются со строки “(VCD)” (результат — на рис. 15.24): SELECT Format(AVG(Цена1), "### ##0.00р") AS [Среднее значение] FROM Товары WHERE НаимТовара LIKE '(VCD)*' Рис. 15.24 При помощи функции AVG можно вычислить среднее значение Функции <$I[] MAX в SQL-инструкции SELECT > MAX и <$I[] MIN в SQL-инструкции SELECT > MIN использовать также просто, как и AVG, например: SELECT Format(MAX(Цена1), "### ##0.00р") AS [Максимальная цена] FROM Товары WHERE НаимТовара LIKE '(VCD)*' или SELECT Format(MIN (Цена1), "### ##0.00р") AS [Максимальная цена] FROM Товары WHERE НаимТовара LIKE '(VCD)*' В первой из приведенных инструкций определяется максимальное значение цены на товары, наименования которых начинаются со строки “(VCD)”, во второй — минимальное значение цены на подобные товары. В конкретных реализациях SQL имеются другие агрегирующие функции, которые следует использовать только в том случае, если вы уверены, что никогда не захотите использовать фрагменты своего кода в различных СУБД.
|