行转列:首先我们先创建一个表
表中的数据如下
#行转列
select user_name,
MAX(CASE course WHEN '数学' THEN score else 0 END) 数学,
MAX(CASE course WHEN '语文' THEN score else 0 END) 语文,
MAX(CASE course WHEN '英语' THEN score else 0 END) 英语
FROM test_hjsjy_1
GROUP BY user_name
如果是刚开始借出sql的话,很多人会有一个疑问为啥要用max聚合函数,这不是多此一举吗?
其实不是的,当我们把max函数去掉之后看一下表中的数据是怎么样的:
这是时候我们会发下他们语文和英语的成绩是0;
为什么会这样呢?试着吧group by去掉看一下表数据:
看到这个结果想必就知道为啥要用max函数了,因为group by 分组如果没有聚合函数的话,他只会查询每个分组的第一个元组,所以这里的max函数必不可少