Сводная таблица SQL для одной таблицы - PullRequest
0 голосов
/ 30 июня 2018

Есть столик:

Nomber    Sce    SceValue
10        A      a1b2c3
20        C      d2v3b4
10        B      42b2c3
10        B      5978c3
20        A      edr432

Мне нужно создать следующий листинг, используя представление, в котором показаны все возможные пары "Sce" и "SceValue" для каждого отдельного "Nomber" (максимум 9 пар):

Nomber    Sce1    SceValue1    Sce2    SceValue2  ...    Sce9    SceValue9
10        A       a1b2c3       B       42b2c3            B       5978c3
20        C       d2v3b4       A       edr432

Я бы хотел добиться этого с помощью View. Это возможно?

1 Ответ

0 голосов
/ 30 июня 2018

Вы можете использовать условное агрегирование:

select number,
       max(case when seqnum = 1 then Sce end) as sce_1,
       max(case when seqnum = 1 then SceValue end) as SceValue_1,
       max(case when seqnum = 2 then Sce end) as sce_2,
       max(case when seqnum = 2 then SceValue end) as SceValue_2,
       . . .
       max(case when seqnum = 9 then Sce end) as sce_9,
       max(case when seqnum = 9 then SceValue end) as SceValue_9
from (select t.*,
             row_number() over (partition by nomber order by sce) as seqnum
      from t
     ) t
group by nomber;
...