Змініть формати дати за допомогою редактора Power Query
У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.
У цьому посібнику ми обговоримо кілька способів використання або виконання пропозиції HAVING у агрегатних функціях SQL . Використання цього пункту в агрегатних функціях SQL може значно допомогти в узагальненні даних.
Речення HAVING майже схоже на оператор WHERE і також може виконуватися разом з ним.
Ми обговоримо їхні кореляції та відмінності, надавши приклади під час проходження цього підручника.
Зміст
Інструкції GROUP BY і WHERE у SQL
Для нашого першого прикладу ми обговоримо, як виконати та використати приклад таблиці нижче. Зауважте, що ми можемо використовувати речення WHERE лише з наявними стовпцями, а не лише в агрегатних функціях.
Припустімо, ми хочемо отримати загальний обсяг продажів продукту на основі його стовпця SaleAmount , де значення більше 2 . Щоб отримати результат, наша команда повинна бути наступною:
Спочатку ми вибираємо ProductName і об’єднуємо SaleAmount , щоб отримати TotalSales.
Потім ми використали тут оператор WHERE , оскільки ми намагаємося отримати лише ті продукти, у яких SaleAmount перевищує 2. Команда «GROUP BY ProductName» вказує, що вона згрупує рядки під стовпцем ProductName в один.
Виконавши наш набір команд , ми побачимо, що з усіх даних у стовпцях ProductName і SaleAmount відображаються лише Bulb і Fan . Це тому, що вони були єдиними, хто мав SaleAmount , більший за 2.
У цьому прикладі оператор WHERE призначений для фільтрації результатів за наявним стовпцем, який є нашою SaleAmount . Також зауважте, що оператор WHERE з’являється перед GROUP BY і його не можна використовувати для фільтрації агрегатних функцій. З іншого боку, речення HAVING з’являється після GROUP BY і використовується для фільтрації на основі агрегатної функції.
Речення GROUP BY і HAVING у SQL
У цьому прикладі ми збираємося продемонструвати різницю між інструкцією WHERE і пропозицією HAVING . Ми використаємо ту саму мету, що й у попередньому прикладі, щоб ми могли порівняти та оцінити результати.
Давайте спочатку відобразимо товари з їхніми загальними продажами за допомогою наведеної нижче команди. Як бачите, наша перша команда залишається такою ж, як і наша перша команда, яка виконує оператор WHERE .
Якщо ми виконаємо перші дві команди, то отримаємо наступний результат:
Тепер, скажімо, ми хочемо відобразити лише продукти, загальний обсяг продажу яких перевищує 5. Ми не можемо використовувати оператор WHERE , оскільки його можна використовувати лише з наявними стовпцями. Тому нам потрібно використовувати речення HAVING , оскільки ми будемо фільтрувати з агрегатної функції.
Зверніть увагу, як ми використовуємо речення HAVING після GROUP BY на відміну від оператора WHERE , який використовується перед GROUP BY. Це пояснюється тим, що SQL згрупує записи перед тим, як обчислить речення HAVING .
Давайте виконаємо ці команди разом із HAVING SUM(SaleAmount)>5 . Після вказівки, що ми хочемо отримати лише ті продукти, загальна ціна яких перевищує 5, ми помітимо, що в нашій поточній таблиці результатів ми більше не побачимо Pen . Це тому, що його загальна кількість менше 5 .
Коротше кажучи, коли ми хочемо відфільтрувати дані з нашої таблиці на основі наявного стовпця, ми використовуємо пропозицію WHERE , тоді як, коли ми хочемо відфільтрувати дані з агрегатної функції, ми використовуємо пропозицію HAVING .
Речення HAVING і WHERE у SQL Server Management Studio (SSMS)
Тепер ми будемо рухатися вперед, обговорюючи та демонструючи, як ми можемо виконати пропозицію HAVING у (SSMS). Ми також розглянемо різницю між пропозиціями HAVING і WHERE , надавши приклади.
Нижче показано наш зразок даних SalesOrderHeader. Ці дані складаються зі 100 рядків. Для нашого прикладу ми хочемо отримати TotalSale за CustomerID , де TotalSale більше 10000 . Зауважте, що загальна сума продажу базується на сумі значень стовпця TotalDue .
По-перше, дозвольте мені продемонструвати, чому ми не можемо використовувати речення WHERE , коли ми хочемо фільтрувати агрегатну функцію на основі нашого прикладу вище.
Ми будемо використовувати зразок набору команд із зображення нижче. Як ви бачите, технічно ми маємо той самий набір команд, що й у нашому першому прикладі.
Однак, коли ми натискаємо «Виконати» у верхньому лівому куті, це призведе до помилки, оскільки ми не можемо використовувати лише речення WHERE під час фільтрації за агрегатною функцією.
Щоб виправити помилку, нам потрібно відфільтрувати результат за допомогою пропозиції HAVING замість пропозиції WHERE . Наш новий набір команд має бути схожим на зображення нижче.
Тепер ми бачимо, що нашу помилку виправлено та містить результати заіз TotalSale понад 10000 .
Знову ж таки, речення WHERE завжди використовується перед реченням GROUP BY , тоді як речення HAVING завжди використовується після речення GROUP BY .
Використання обох речень HAVING і WHERE у SQL
Для цього прикладу, скажімо, ми хочемо використовувати пропозиції WHERE і HAVING одночасно. Давайте спробуємо отримати TotalSale за CustomerID , де TotalSale перевищує 10000 , але лише для клієнтів, у яких їхній TerritoryID дорівнює 1 .
Оскільки ми хочемо відфільтрувати результати за клієнтами, які мають 1 як TerritoryID , ми використаємо речення WHERE. Отже, наша команда має бути такою ж, як і наша попередня. Знову ж таки, ми додали речення WHERE перед реченням GROUP BY.
Наразі ми не бачимо великої різниці між нашим попереднім результатом і цим новим. Однак, якщо ви уважно подивіться на правий нижній кут, то тепер у нас лише 64 рядки порівняно з попереднім із 505 рядками даних. Це тому, що результати також фільтруються на основі їх TerritoryID .
Висновок
Підводячи підсумок, ми можемо використовувати речення WHERE лише з наявними стовпцями. Якщо нам потрібно фільтрувати за допомогою агрегованих функцій, замість цього потрібно використовувати речення HAVING .
Використання пропозиції HAVING у агрегатних функціях SQL і відпрацювання способів спільного виконання пропозицій HAVING і WHERE може забезпечити користувачам зручність під час роботи з великою кількістю даних або записів.
Сподіваюся, я надав вам достатньо інформації та розуміння того, як використовувати речення HAVING у агрегатних функціях SQL. Якщо ви хочете дізнатися більше про цю тему та інший пов’язаний вміст, ви, звичайно, можете переглянути список відповідних посилань нижче.
Все найкраще,
Хафіз
У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.
Дізнайтеся, як об’єднати файли з кількох папок у мережі, робочому столі, OneDrive або SharePoint за допомогою Power Query.
Цей підручник пояснює, як обчислити місячне ковзне середнє на базі даних з початку року за допомогою функцій AVERAGEX, TOTALYTD та FILTER у LuckyTemplates.
Дізнайтеся, чому важлива спеціальна таблиця дат у LuckyTemplates, і вивчіть найшвидший і найефективніший спосіб це зробити.
У цьому короткому посібнику розповідається про функцію мобільних звітів LuckyTemplates. Я збираюся показати вам, як ви можете ефективно створювати звіти для мобільних пристроїв.
У цій презентації LuckyTemplates ми розглянемо звіти, що демонструють професійну аналітику послуг від фірми, яка має кілька контрактів і залучених клієнтів.
Ознайомтеся з основними оновленнями для Power Apps і Power Automate, а також їх перевагами та наслідками для Microsoft Power Platform.
Відкрийте для себе деякі поширені функції SQL, які ми можемо використовувати, наприклад String, Date і деякі розширені функції для обробки та маніпулювання даними.
У цьому підручнику ви дізнаєтеся, як створити свій ідеальний шаблон LuckyTemplates, налаштований відповідно до ваших потреб і вподобань.
У цьому блозі ми продемонструємо, як шарувати параметри поля з малими кратними, щоб створити неймовірно корисну інформацію та візуальні ефекти.