我有一個表,結構如下所示:
apply_id
bigint COMMENT ,
oss_key
string COMMENT ‘存儲在oss上的路徑’,
type
string COMMENT ‘類型,10-一類資料,20-二類資料,30-三類資料,40-四類資料,50-補充資料’,
查詢出來之後是這樣的資料
SELECT apply_id
,type
,oss_key
FROM ods_t_apply_auth
;
現在我想将type列去掉,将apply_id相同的oss_key分為五類既五列,也就是說apply_id變為唯一值,type類型列去掉,加上類型1,類型2,類型3,類型4,類型5五列資料。每一條資料對應一個apply_id。
執行如下SQL
SELECT apply_id
,MAX( CASE WHEN type=10 THEN oss_key END) AS oss_key1
,MAX( CASE WHEN type=20 THEN oss_key END) AS oss_key2
,MAX( CASE WHEN type=30 THEN oss_key END) AS oss_key3
,MAX( CASE WHEN type=40 THEN oss_key END) AS oss_key4
,MAX( CASE WHEN type=50 THEN oss_key END) AS oss_key5
FROM ods_t_apply_auth
GROUP BY apply_id
;
即可完成完美轉換