Оператор PIVOT |
||||||||||||||||||||||||
Давайте рассмотрим такую задачу. Пример 1.Для каждого производителя из таблицы Product определить число моделей каждого типа продукции. Задачу можно решить стандартными средствами с использованием оператора CASE:
Пример 2. Посчитать среднюю цену на ноутбуки в зависимости от размера экрана. Задача элементарная и решается с помощью группировки:
А вот как можно повернуть эту таблицу с помощью PIVOT:
В отличие от сводных таблиц, в операторе PIVOT требуется явно перечислить столбцы для вывода. Это серьезное ограничение, т.к. для этого нужно знать характер данных, а значит и применять в приложениях этот оператор мы сможем, как правило, только к справочникам (вернее, к данным, которые берутся из справочников). Если рассмотренных примеров покажется недостаточно, чтобы понять и использовать без затруднений этот оператор, я вернусь к нему, когда придумаю нетривиальные примеры, где использование оператора PIVOT позволяет существенно упростить код. Я написал этот опус в помощь тем, кому оператор PIVOT интуитивно непонятен. Могу согласиться с тем, что в реляционном языке Язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL он выглядит инородным телом. Собственно, иначе и быть не может ввиду того, что поворот (транспонирование) таблицы является не реляционной операцией, а операцией работы с многомерными структурами данных. |