面試題:
成績錶轉成結果表:
將成績表列合併,同組放到一個map中,然後通過map將數據取出並將列名轉換。
SELECT id, sub['數學'] AS `數學`, sub['語文'] AS `語文` FROM (SELECT id, str_to_map(concat_ws(",",collect_set(concat_ws(':', subject, score)))) sub, concat_ws(",",collect_set(concat_ws(':', subject, score))) FROM tmp.tmp_test_1010 GROUP BY id)t1 |
原始表:
結果表:
僅供參考,如有更好的方法互相學習。
:::總結::::人生很短,不斷學習