Агрегатні функції в 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 .

Здебільшого використовується в агрегатних функціях, оскільки повертає один запис із кожної групи. Крім того, усі стовпці в інструкції SELECT, навіть без агрегування, мають бути включені.

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

Агрегатні функції в SQL та їх використання

По-перше, давайте спробуємо виконати команду без використання пропозиції GROUP BY, щоб побачити різницю. Давайте знайдемо загальну суму продажу в стовпці ProductName . Наша команда має виглядати приблизно так, як на зображенні нижче.

Агрегатні функції в SQL та їх використання

Як ви помітили, команда схожа на попередні приклади, які ми згадували на початку цього підручника. Після того як ми виконаємо цю команду, вона просто обчислить загальну суму в стовпці SaleAmount , яка буде 28 .

Тепер розглянемо ще один приклад із використанням пропозиції GROUP BY

Агрегатні функції в SQL та їх використання

Оскільки ми використовуємо речення GROUP BY , тепер ми можемо використовувати кілька стовпців. Цього разу ми хочемо побачити загальну суму продажу на категорію.

Речення GROUP BY гарантує, що в результаті відображатиметься підсумок продажів для кожної категорії, і якщо його виконати, результатом буде зображення нижче.

У цьому прикладі важливо використовувати речення GROUP BY, оскільки в іншому випадку виникне помилка. Це тому, що категорія не міститься в реченні GROUP BY або агрегатній функції.

Агрегатні функції в SQL та їх використання

Розглянемо той самий приклад, але цього разу ми також отримаємо загальну SaleAmount за ProductName . Наша команда має виглядати приблизно так, як на зображенні нижче.

Агрегатні функції в SQL та їх використання

Щойно ми виконаємо нашу команду, результат покаже підсумок продажів за категорією та ProductName .

Агрегатні функції в SQL та їх використання

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

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

Давайте тепер обговоримо, як ми можемо використовувати агрегатні функції в . У наших прикладах ми будемо використовувати таблицю нижче.

Агрегатні функції в SQL та їх використання

У нашій таблиці SalesOrderHeader є 31 465 рядків даних . У нашому першому прикладі ми продемонструємо, як ми можемо використовувати функцію 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 за рік. 



Висновок

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

Сподіваємось, цей підручник допоможе вам краще попрактикуватися у використанні різних агрегатних функцій у SQL. Якщо ви хочете дізнатися більше про цю тему та інший пов’язаний вміст, ви, звичайно, можете переглянути список відповідних посилань нижче.

Все найкраще,

Хафіз


Поле пошуку PowerApps: як додати та налаштувати

Поле пошуку PowerApps: як додати та налаштувати

Дізнайтеся, як створити поле пошуку PowerApps з нуля та налаштувати його відповідно до загальної теми вашої програми.

Приклад SELECTEDVALUE DAX – вибір розділювача врожаю

Приклад SELECTEDVALUE DAX – вибір розділювача врожаю

Збирайте або фіксуйте значення в мірі для повторного використання в іншій мірі для динамічних обчислень за допомогою SELECTEDVALUE DAX у LuckyTemplates.

Історія версій у списках SharePoint

Історія версій у списках SharePoint

Дізнайтеся, як історія версій у SharePoint може допомогти вам побачити еволюцію певних даних і скільки змін вони зазнали.

Вибір шістнадцяткових кодів кольорів для звітів LuckyTemplates

Вибір шістнадцяткових кодів кольорів для звітів LuckyTemplates

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

Динамічний роздільник дат у LuckyTemplates із використанням таблиці Менделєєва

Динамічний роздільник дат у LuckyTemplates із використанням таблиці Менделєєва

Ви можете легко відобразити діапазон дат як роздільник у своєму звіті за допомогою таблиці періодів. Використовуйте M-код, щоб створити динамічний роздільник дат у LuckyTemplates.

Таблиці пропорцій і частот в Excel

Таблиці пропорцій і частот в Excel

Збирався зануритися в частотні таблиці в Excel, а також у таблиці пропорцій. Добре подивіться, що це таке і коли їх використовувати.

Як інсталювати DAX Studio та табличний редактор у LuckyTemplates

Як інсталювати DAX Studio та табличний редактор у LuckyTemplates

Дізнайтеся, як завантажити та інсталювати DAX Studio та Tabular Editor 3 і як налаштувати їх для використання в LuckyTemplates і Excel.

Візуалізація карти форми LuckyTemplates для просторового аналізу

Візуалізація карти форми LuckyTemplates для просторового аналізу

Цей блог містить візуалізацію Shape Map для просторового аналізу в LuckyTemplates. Я покажу вам, як ви можете ефективно використовувати цю візуалізацію з її функціями та елементами.

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

У цьому підручнику я демонструю унікальну ідею щодо фінансової звітності, яка полягає в розподілі результатів для попереднього визначення шаблонів таблиць у LuckyTemplates.

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Створіть показники DAX у LuckyTemplates, використовуючи наявні показники або формули. Це те, що я називаю технікою розгалуження міри.