Агрегатные функции в SQL и их использование

Агрегатные функции в SQL и их использование

В этом руководстве мы обсудим различные агрегатные функции в SQL и то, как мы можем их использовать. В SQL агрегатные функции используются для накопления данных из нескольких строк в одну итоговую строку. 

Агрегатные функции в SQL могут быть очень полезны для аналитиков при суммировании данных.

Оглавление

Часто используемые агрегатные функции в SQL

Ниже показаны некоторые из часто используемых агрегатных функций в SQL .

Агрегатные функции в SQL и их использование

Обратите внимание, что функции и обычно используются в валютах или целочисленных значениях. Функция AVG возвращает не только среднее, но и среднее значение столбца. Кроме того, агрегатная функция — единственная, которая не игнорирует нулевые значения при выполнении вычислений.

Давайте создадим несколько примеров команд, используя наши пять агрегатных функций с образцом таблицы ниже.

Агрегатные функции в SQL и их использование

Сначала составим команду с помощью функции MAX . Допустим, мы хотим найти продукт с наивысшей ценностью в столбце ProductName. Наша команда должна выглядеть примерно так, как показано на изображении ниже.

Агрегатные функции в SQL и их использование

Поскольку мы находим продукт с наивысшей ценностью, нам нужно получить его цены, которые находятся в столбце ProductPrice . Всегда добавляйте псевдоним, чтобы указать имя для выходного столбца. Если мы выполним эту команду, она покажет нам самый ценный продукт только с одним значением. 

Далее составим команду с помощью функции MIN . Поскольку функция MIN чем-то похожа на функцию MAX , мы воспользуемся тем же примером, что и в функции MAX , но на этот раз мы найдем продукт с наименьшим значением.

Агрегатные функции в SQL и их использование

Когда мы выполним эту команду, она выберет продукт с наименьшим значением в нашей таблице образцов.

Теперь давайте сделаем команду, используя функцию COUNT . Допустим, мы хотим найти количество продуктов в столбце ProductID . Наша команда должна выглядеть примерно так, как показано на изображении ниже.

Агрегатные функции в SQL и их использование

Если мы выполним эту команду, она покажет нам количество каждого продукта в столбце ProductID и соответствующую цену.

Агрегатные функции и предложение GROUP BY

Теперь давайте обсудим, как мы можем использовать несколько столбцов с агрегатными функциями . Для этого нам нужно использовать предложение GROUP BY .

Функция GROUP BY в основном используется в агрегатных функциях, поскольку она возвращает одну запись из каждой группы. Кроме того, все столбцы в операторе SELECT, даже без агрегирования, должны быть включены.

Давайте обсудим, как мы будем использовать агрегатные функции с предложением GROUP BY, на примере нашей таблицы ниже.

Агрегатные функции в SQL и их использование

Во-первых, давайте попробуем выполнить команду без использования предложения GROUP BY, чтобы увидеть разницу. Давайте найдем общее значение SaleAmount в столбце ProductName . Наша команда должна выглядеть примерно так, как показано на изображении ниже.

Агрегатные функции в SQL и их использование

Как вы заметили, команда аналогична предыдущим примерам, которые мы упоминали в начале этого руководства. Как только мы выполним эту команду, она просто рассчитает общую сумму в столбце SaleAmount , которая будет равна 28 .

Теперь давайте рассмотрим еще один пример с предложением GROUP BY

Агрегатные функции в SQL и их использование

Поскольку мы используем предложение GROUP BY , теперь мы можем использовать несколько столбцов. На этот раз мы хотим увидеть общую сумму продаж по категориям.

Предложение GROUP BY гарантирует, что в результате будет показана сумма продаж для каждой категории, и если оно выполнено, результатом будет изображение ниже.

В этом примере важно использовать предложение GROUP BY, иначе произойдет ошибка. Это связано с тем, что категория не содержится в предложении GROUP BY или агрегатной функции.

Агрегатные функции в SQL и их использование

Возьмем тот же пример, но на этот раз мы также получим общую сумму продаж по ProductName . Наша команда должна выглядеть примерно так, как показано на изображении ниже.

Агрегатные функции в SQL и их использование

Как только мы выполним нашу команду, результат покажет сумму продаж по категориям и по ProductName .

Агрегатные функции в SQL и их использование

Помните, что вы не можете использовать или обращаться к нескольким столбцам без использования предложения GROUP BY , потому что если вы это сделаете, это вызовет ошибку после запуска вашей команды.

Агрегированные функции в SQL Server Management Studio (SSMS)

Давайте теперь обсудим, как мы можем использовать агрегатные функции в SQL Server Management Studio . В наших примерах мы будем использовать приведенную ниже таблицу.

Агрегатные функции в SQL и их использование

У нас есть 31 465 строк данных в нашей таблице SalesOrderHeader . В нашем первом примере мы продемонстрируем, как мы можем использовать функцию COUNT , подсчитывая строки в нашей таблице. Наша команда должна выглядеть как на картинке ниже.

Агрегатные функции в SQL и их использование

Мы успешно подсчитали все строки в нашем SalesOrderHeader и назвали его countofrows . Как только мы выполним эту команду, мы получим 31 465 строк .

Вернемся к нашему набору данных. Используя ту же агрегатную функцию , посчитаем, сколько SalesPersonID содержится в нашей таблице. Наша команда должна быть:

Агрегатные функции в SQL и их использование

Когда мы выполним нашу команду, она специально извлечет данные из столбца SalesPersonsID и предоставит нам столбец с именем countofsalespersons с результатом 3806 .

Агрегатные функции в SQL и их использование

Использование агрегатных функций в одном запросе

Двигаясь дальше, давайте обсудим, как мы можем использовать несколько агрегатных функций в одном запросе. Мы будем использовать функции SUM , AVG и MAX для агрегирования наших столбцов TotalDue и TaxAmt

Агрегатные функции в SQL и их использование

Мы можем использовать несколько агрегатных функций в одном запросе, поставив запятую после каждой функции. 

Агрегатные функции в SQL и их использование

Как только мы выполним эту команду, наш результат должен выглядеть как на изображении ниже. 

Агрегатные функции в SQL и их использование

Теперь мы можем видеть разные столбцы вместе с их соответствующими значениями, используя несколько агрегатных функций

Давайте попробуем выполнить команду, которая вызовет ошибку, чтобы подчеркнуть, почему мы должны использовать предложение GROUP BY при выборе столбцов. Мы будем использовать тот же пример с несколькими функциями, но на этот раз мы выберем CustomerID .

Агрегатные функции в SQL и их использование

Как видите, в нем говорится, что команда недействительна, поскольку CustomerID не содержится ни в агрегатной функции , ни в предложении GROUP BY .

Пример сценария с предложением GROUP BY

В нашем следующем примере давайте исправим нашу ошибку, предоставив предложение GROUP BY в нашей команде.

Агрегатные функции в SQL и их использование

Мы только что добавили CustomerID в предложение GROUP BY , и теперь мы можем видеть суммирование, среднее и максимальное значение наших TotalDue и TaxAmt по CustomerID. Мы также можем видеть, что у нас всего 19119 строк .

Давайте рассмотрим наш последний пример, обсудив, почему для нас важно убедиться, что неагрегированные столбцы и выражения включены в предложение GROUP BY .

В нашей таблице SalesOrderHeader есть столбец OrderDate . Допустим, мы хотим получить сумму TotalDue по годам. Если мы не будем указывать все неагрегированные столбцы и выражения, нам нужно использовать команду с изображения ниже.

Агрегатные функции в SQL и их использование

Обратите внимание, как мы можем получить результат, а не ошибку. Однако у нас есть несколько отчетов за один и тот же год, когда наша цель состоит в том, чтобы сводить отчеты к одному конкретному значению за год.

Чтобы исправить нашу ошибку, мы должны убедиться, что мы также включили выражение в наше предложение GROUP BY . Наша новая команда должна быть:

Агрегатные функции в SQL и их использование

После выполнения команды мы видим, что мы успешно получили сумму OrderDate за год. 

Предложение HAVING в агрегатных функциях SQL,
хранимых процедурах в SQL | Обзор
эффективных способов использования функции GROUPBY в LuckyTemplates

Заключение

Подводя итог, вы получили некоторые базовые знания об использовании агрегатных функций в SQL. Агрегированные функции идеально подходят для работы с большими отчетами или наборами данных, поскольку они обеспечивают удобство для аналитиков при анализе и обобщении данных. 

Надеемся, что это руководство поможет вам лучше попрактиковаться в использовании различных агрегатных функций в SQL. Если вы хотите узнать больше об этой теме и другом связанном контенте, вы, безусловно, можете просмотреть список соответствующих ссылок ниже.

Всего наилучшего,

Хафиз


Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать