Postgres Широкий В Длинный в зависимости от случая / стоимости - PullRequest
0 голосов
/ 16 мая 2018

У меня есть таблица типа:

id  grouping   value
1   Group 1      Y
2   Group 1      Y
2   Group 2      Y
3   Group 1      Y

Мне уже удалось

id  Group 1  Group 2
1      Y        
2      Y       
2               Y
3      Y      

Мне нужно транспонировать в

id  Group 1 Group 2
1     Y       N
2     Y       Y
3     Y       N

1 Ответ

0 голосов
/ 16 мая 2018

Попробуйте это.

SELECT id
    ,MAX(CASE 
            WHEN grouping = 'Group 1'
                THEN 'Y'
            ELSE 'N'
            END) AS "Group 1"
    ,MAX(CASE 
            WHEN grouping = 'Group 2'
                THEN 'Y'
            ELSE 'N'
            END) AS "Group 2"
FROM t
GROUP BY id
ORDER BY id

Демо

...