Загальні табличні вирази SQL для користувачів LuckyTemplates

У цьому блозі ми обговоримо деякі поширені табличні вирази, також відомі як CTE . Якщо ви зіткнулися зі складними проблемами, їх використання може допомогти вам.

За допомогою CTE ви можете розбити будь-яке завдання на невеликі та керовані запити для вирішення складних проблем.

Тепер давайте дослідимо, як CTE може зробити вашу роботу ефективнішою у вирішенні кодів несправностей.

Зміст

Синтаксис для створення загальних табличних виразів SQL 

Спочатку вам потрібно ввести « WITH », за яким слідує назва виразу CTE , після чого « AS ».

Загальні табличні вирази SQL для користувачів LuckyTemplates

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

Загальні табличні вирази SQL для користувачів LuckyTemplates

Потім додайте aза допомогою віртуальної таблиці, яку ви створили за допомогою назви виразу, яку ви встановили.

Загальні табличні вирази SQL для користувачів LuckyTemplates

У нашому прикладі ми використаємо « USACusts » для назви Expression .

Загальні табличні вирази SQL для користувачів LuckyTemplates

І для запиту ми використаємо цей код. 

Загальні табличні вирази SQL для користувачів LuckyTemplates

Цей запит створить віртуальну таблицю. Там відображатиметься загальна чи зведена сума, згрупована за ідентифікатором клієнта, де країна, до якої вони належать, є « США ». Дані буде витягнуто з таблиці Sales.Customers .

Буде видно два стовпці, які є custid і Agg_Amount . Зверніть увагу, що таблиця USACusts не є фізичною , а лише віртуальною. Це означає, що його не буде видно в нашій базі даних.

Після запиту ми можемо додати a

Загальні табличні вирази SQL для користувачів LuckyTemplates

Цей оператор вибере всі Agg_Amount , які перевищують 1000, із таблиці USACusts .

Кілька поширених табличних виразів SQL 

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

Загальні табличні вирази SQL для користувачів LuckyTemplates

Для цього прикладу ми маємо перший CTE , який є C1 . Звідти ми вибрали YEAR(orderdate) і створили 2 стовпці, які є orderyear і custid з таблиці Sales.Orders .

Для другого CTE під назвою C2 ми вибрали orderyear і зібрали кількість custid за допомогою команди COUNT . Потім ми назвали його numcusts від C1 . У C2 також додано умову WHERE , щоб вибрати лише рік замовлення , який перевищує 2015 рік . Потім ми згрупували їх за порядком рік .

Після цього ми вибрали orderyear і numcusts з C2 . Потім ми додали умову WHERE , щоб вибрати лише кількість клієнтів, яка перевищує 500 .

Підсумовуючи, цей код використовується для вибору клієнтів, у яких рік замовлення перевищує 2015 , і вибирає лише кількість клієнтів, які перевищують 500 на основі умови року замовлення .

Використання кількох КТР для вирішення складних кодів

Далі я продемонструю більше прикладів, щоб ще більше підкреслити використання CTE для усунення несправностей великого набору даних. Ось ще один приклад кількох CTE .

Загальні табличні вирази SQL для користувачів LuckyTemplates

Зауважте, що ви можете називати CTE як завгодно, але для цього блогу ми використовуємо C1 , C2 , C3 тощо, щоб легко ідентифікувати та зрозуміти, як ми використовуємо їх у наших прикладах.

Повертаючись до прикладу, ми створили C1 , щоб вибрати лише продажі, де кількість замовлення перевищує 5 із таблиці Sales.SalesOrderDetails .

Загальні табличні вирази SQL для користувачів LuckyTemplates

Потім у C2 ми використали дані, які ми зберегли в C1 , щоб приєднати продукт на основі Product.ID і згрупували їх за назвою продукту (p.Name) і кольором продукту (p.Color) .

Оскільки ми оголосили умову в C1 , ми згрупуємо назву продукту та колір продукту в C2 лише для замовлень, у яких кількість замовлення (OrderQty) перевищує 5 .

Загальні табличні вирази SQL для користувачів LuckyTemplates

Після цього ми використаємо команду для вибору всіх даних із C2 із кількістю замовлення, яка перевищує 1000 .

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

Загальні табличні вирази SQL для користувачів LuckyTemplates

Для C1 відображаються всі дані з таблиці Sales.SalesOrderDetail із кількістю замовлення, яка перевищує 5 .

Загальні табличні вирази SQL для користувачів LuckyTemplates

Потім C2 показує вихідну кількість замовлення, згруповану за назвою продукту та кольором із C1 . У C2 ми можемо побачити стовпець orderqty , але насправді його немає в C2 , тому що це лише обчислюваний стовпець, який ми згенерували з C1 . Звідси ми можемо почати використовувати будь-яку умову в стовпці orderqty і виконати усунення несправностей.

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

Використання CTE з Case Statement

Розглянемо ще один приклад із тим самим контекстом, щоб показати, як ми можемо використовувати кілька CTE для усунення несправностей складних кодів. 

У цьому випадку ми використаємо інструкцію CASE , яка створить стовпець «Категорія продукту» з результатами, які базуються на сукупній сумі orderqty з C2 .

Загальні табличні вирази SQL для користувачів LuckyTemplates

Як згадувалося раніше, ми не мали orderqty у першому CTE , а також у категорії продукту , але ми використовували проміжні таблиці для обчислення та виконання різних обчислень.

У наступному прикладі ми створимо загальну суму на основі тієї, яку ми створили в попередньому прикладі. Але для цього ми розмістимо оператор CASE для категорії продукту в третій CTE , який є C3 .

Загальні табличні вирази SQL для користувачів LuckyTemplates

Перш ніж продовжити, давайте перевіримо результат C3 , додавши « SELECT * FROM C3 » під C3 .

Загальні табличні вирази SQL для користувачів LuckyTemplates

У C3 ми можемо побачити стовпці ProductName , Color , orderqty і Product Category . Звідси ми можемо почати агрегування на основі категорії продукту . Давайте зробимо це за допомогою наступної команди під C3 .

Загальні табличні вирази SQL для користувачів LuckyTemplates

Наведений нижче приклад є результатом створення сукупної суми за допомогою наведеної вище команди.

Загальні табличні вирази SQL для користувачів LuckyTemplates

Спочатку у нас не було стовпців «Категорія продукту» та «Кількість замовлення », але ми можемо генерувати зразки результатів на основі цих стовпців, використовуючи кілька CTE .

На цьому етапі ви бачите, що ми можемо робити все, що завгодно, за допомогою CTE , щоб ефективніше працювати з нашими кодами.



Висновок

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

Вивчивши це, ви тепер маєте можливість ефективніше налагоджувати свої коди. Пам’ятайте, що ви можете використовувати будь-яке ім’я для CTE , і ви не можете використовувати або називати будь-яке CTE , якщо його не створено. Ознайомившись із CTE , ви можете вважати себе проміжним користувачем.

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

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

Хафіз


Змініть формати дати за допомогою редактора Power Query

Змініть формати дати за допомогою редактора Power Query

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

Power Query: об’єднайте файли з кількох папок

Power Query: об’єднайте файли з кількох папок

Дізнайтеся, як об’єднати файли з кількох папок у мережі, робочому столі, OneDrive або SharePoint за допомогою Power Query.

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Цей підручник пояснює, як обчислити місячне ковзне середнє на базі даних з початку року за допомогою функцій AVERAGEX, TOTALYTD та FILTER у LuckyTemplates.

Створення таблиці дат у LuckyTemplates

Створення таблиці дат у LuckyTemplates

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

Мобільні звіти LuckyTemplates. Поради та методи

Мобільні звіти LuckyTemplates. Поради та методи

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

Звіти про професійну аналітику послуг у LuckyTemplates

Звіти про професійну аналітику послуг у LuckyTemplates

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

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Ознайомтеся з основними оновленнями для Power Apps і Power Automate, а також їх перевагами та наслідками для Microsoft Power Platform.

Загальні функції SQL: огляд

Загальні функції SQL: огляд

Відкрийте для себе деякі поширені функції SQL, які ми можемо використовувати, наприклад String, Date і деякі розширені функції для обробки та маніпулювання даними.

Створення шаблону LuckyTemplates: керівництво та поради

Створення шаблону LuckyTemplates: керівництво та поради

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

Параметри полів і малі кратні в LuckyTemplates

Параметри полів і малі кратні в LuckyTemplates

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