Comments 14
отличное решение! буквально на прошлой неделе для 10-ки сводную таблицу рисовал, а вот как оно можно )
завтра опробую, спасибо! )
завтра опробую, спасибо! )
Отлично разобрано.
Стоит отметить что оригинальный pivot от Т.Кайта лучше подходит для случаев если вам просто нужно транспонировать таблицу и вы знаете возможный максимум столбцов.
Ухищрение с запросом для столбцов ('select count(distinct trunc(dt)) from actions') может сыграть злую шутку с производительностью. Алиасы, конечно, полезны, но если в них заселектится строка с двойными кавычками, случится фейл.
Стоит отметить что оригинальный pivot от Т.Кайта лучше подходит для случаев если вам просто нужно транспонировать таблицу и вы знаете возможный максимум столбцов.
Ухищрение с запросом для столбцов ('select count(distinct trunc(dt)) from actions') может сыграть злую шутку с производительностью. Алиасы, конечно, полезны, но если в них заселектится строка с двойными кавычками, случится фейл.
Да, его вариант в этих случаях гораздо правильнее(не нужно делать лишний запрос), но такие случаи достаточно редки, и хочется большей гибкости. Вообще, наверное, зря я не упомянул, что хотел в свое время добавить условие максимального ограничения для кол-ва столбцов прямо в функцию, но все руки не дотягивались и каждый раз делал в таких случаях просто select case when count(1)<=max_limit then count(1) else max_limit end as max_cols from…
Вот кстати дискуссия на эту тему. Похоже Pivot = Transpose на пути в стандарт SQL. sql.ru/forum/actualthread.aspx?bid=36&tid=696977&hl=transpose
Приведите, пожалуйста, в тексте статьи ссылку на оригинальный метод Кайта, чтобы когда из закладок придётся доставать, самому не пришлось искать. Спасибо.
К сожалению, оригинальную ссылку на asktom.oracle.com найти сейчас не смог(странно, что она исчезла), но привел другую.
Вы планы запросов посмотрите — с такой нагрузкой область применения данного решения существенно сужается.
Пенни и Шелдон порадовали :)
На день раньше статью надо было показать.
Вчера мозг выносил написанием запроса.
А тут на тебе, полезняшка, которая сократила бы мою работу раза в 2.
Вчера мозг выносил написанием запроса.
А тут на тебе, полезняшка, которая сократила бы мою работу раза в 2.
Sign up to leave a comment.
Функции Oracle 11g Pivot, Unpivot