impala行列转换,除了case...when...这种静态转换方法,还有别的转换方法吗? 5C

最近遇到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

图片说明图片说明

1个回答

jk_216
kk_qwaz 谢谢回复,这篇我也看过,不过group_concat(string s [, string sep]) 只是拼接字段,eg:“|张三 | 语文=80,数学=92,英语=76,生物=88|”,并没有达到我想要的结果
8 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问