Оператори pivot і unpivot, інтерактивний підручник з sql

Заголовками рядків тут є унікальні імена виробників, які беруться з шпальти maker вищенаведеного запиту, а заголовками стовпців - унікальні типи продукції (відповідно, з шпальти type). А що має бути в середині? Відповідь очевидна - деякий агрегат, наприклад, функція count (type), яка підрахує для кожного виробника окремо число моделей ПК, ноутбуків і принтерів, які і заповнять відповідні осередки цієї таблиці.

Це найпростіший варіант зведеної таблиці, який має всього два рівні ієрархії по стовпцях і рядках. Тобто виконуючи згортку по вертикалі, ми отримуємо кількість моделей кожного виду продукції для всіх виробників, а по горизонталі - загальне число моделей незалежно від типу для кожного виробника. Можна було б додати додаткові рівні ієрархії, наприклад, для градації принтерів по кольоровості, a ноутбуків за розміром екрану і т.д.

Можна сказати, що pivot-таблиця в SQL - це однорівнева зведена таблиця.

Я можу і помилитися в хронології, але мені видається, що успіх реалізації зведеної таблиці в Excel привів до появи так званих перехресних запитів в Access, і, нарешті, до оператора PIVOT в T-SQL.

У Oracle операції PIVOT і DRILLDOWN (UNPIVOT) були віддані на відкуп засобів візуалізації OLAP, тобто MS Excel, BusinessObjects тощо.

У Oracle 11g з'явилися pivot / unpivot, але в pivot є "тонкість" - потрібно ПРЯМО ПЕРЕДБАЧЕНА вказувати стовпці, якщо результат потрібен в табличному вигляді. Отримання даних для стовпців, не зазначених явно, також можливо, але тільки у вигляді XML.

Схожі статті