平時很少用到map類型,這次用到了記錄一下。
適用場景:行轉列,且mid的key個數可能不一樣的情況。
舉個栗子:
1 select 2 mid, 3 tags['電影'] as movie, 4 tags['音樂'] as music 5 from( 6 select 7 mid, 8 str_to_map(concat_ws(',',collect_list(concat(key,":",value)))) as tags 9 from ( 10 select 11 mid, 12 key, 13 concat_ws('-',collect_list(value))as value 14 from( 15 select 1 as mid,'電影' as key,'驚悚' as value 16 union ALL 17 select 1 as mid,'音樂' as key,'搖滾' as value 18 union ALL 19 select 1 as mid,'電影' as key,'喜劇' as value 20 ) a 21 group by 22 mid,key 23 )t 24 group by 25 mid 26 ) tt
構造數據:
mid | key | value |
---|---|---|
1 | 電影 | 驚悚 |
1 | 音樂 | 搖滾 |
1 | 電影 | 喜劇 |
運行結果:
mid | movie | music |
---|---|---|
1 | 驚悚-喜劇 | 搖滾 |