最近遇到impala行列转换,网上搜了一下,大都是用 max(case ... when ...)静态行转列,但是这个方法是在已知晓有多少数据的情况下可以使用,在不确定数据的情况下,该用什么办法进行行列转换呢?
SELECT name 姓名 ,
MAX(CASE subject WHEN '语文' THEN Score ELSE 0
END) 语文 ,
MAX(CASE subject WHEN '数学' THEN Score ELSE 0
END) 数学 ,
MAX(CASE subject WHEN '英语' THEN Score ELSE 0
END) 英语,
MAX(CASE subject WHEN '生物' THEN Score ELSE 0
END) 生物
FROM #T
GROUP BY name