Агрегатные функции в 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. Если вы хотите узнать больше об этой теме и другом связанном контенте, вы, безусловно, можете просмотреть список соответствующих ссылок ниже.

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

Хафиз

Оставить комментарий

Расчет недельных продаж с помощью DAX в LuckyTemplates

Расчет недельных продаж с помощью DAX в LuckyTemplates

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

Что такое 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 Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

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

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

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

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

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

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

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

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

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

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

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

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