Postgres广泛到案例/价值

时间:2018-05-16 11:30:46

标签: postgresql window-functions

我有一张表:

@Query("{'store' : :#{#store}, 'app' : :#{#app} }")
List<T> findByStoreAndApp(@Param("store") String store, @Param("app") String app);

我已经管理了

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      

1 个答案:

答案 0 :(得分:1)

试试这个。

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

Demo