Я пытаюсь добиться следующего:Pivot на две колонки
У меня есть две колонки - одна с колонкой ID, и один с данными, принадлежащими к этой колонке.
Исходные данные:
+---------+--------+
| ColName | Values |
+---------+--------+
| Column1 | 13 |
| Column1 | 86 |
| Column1 | 16 |
| Column1 | 18 |
| Column1 | 2 |
| Column1 | 11 |
| Column1 | 28 |
| Column1 | 3 |
| Column1 | 13 |
| Column1 | 13 |
| Column1 | 90 |
| Column2 | 35 |
| Column2 | 69 |
| Column2 | 26 |
| Column2 | 71 |
| Column2 | 32 |
| Column2 | 69 |
| Column2 | 87 |
| Column2 | 58 |
| ColumnN | 13 |
| ColumnN | 54 |
| ColumnN | 79 |
| ColumnN | 86 |
| ColumnN | 47 |
| ColumnN | 37 |
| ColumnN | 65 |
| ColumnN | 49 |
| ColumnN | 89 |
| ColumnN | 27 |
+---------+--------+
Я хотел бы получить следующий результат:
+---------+---------+---------+
| Column1 | Column2 | ColumnN |
+---------+---------+---------+
| 13 | 35 | 13 |
| 86 | 69 | 54 |
| 16 | 26 | 79 |
| 18 | 71 | 86 |
| 2 | 32 | 47 |
| 11 | 69 | 37 |
| 28 | 87 | 65 |
| 3 | 58 | 49 |
| 13 | NULL | 89 |
| 13 | NULL | 27 |
| 90 | NULL | NULL |
+---------+---------+---------+
мне это нужно, чтобы быть динамичным, так как число столбцов в поле ID не известны. Кроме того, данные в поле «Значения» являются полностью произвольными. Это может быть любое и любое количество строк.
Я провел некоторое тестирование с помощью функции crosstab
, но, похоже, это применимо только тогда, когда у нас есть третий столбец в необработанных данных.
Любые указания?
Это не ясно из вашего примера только то, что отображение вы хотите от входа до выхода таблиц. Как вы собираете строку вывода из входных строк? Вы получаете строку для каждого значения 'value'? Измените свой вопрос, чтобы закончить следующее предложение: строка (v1, ...) со столбцами (c1, ...) выводится в том и только тогда, когда .... PS Почему вы это делаете? Что вам делать с этим? (По-видимому, вход и выход оба сильно избыточны.) – philipxy
Получили ли вы удовлетворение re dum/dee? – philipxy