使用 IF() 函数实现行转列,参考如下代码:
SELECT userid,
SUM(IF(`subject`='语文',score,0)) as '语文',
SUM(IF(`subject`='数学',score,0)) as '数学',
SUM(IF(`subject`='英语',score,0)) as '英语',
SUM(IF(`subject`='政治',score,0)) as '政治'
FROM tb_score
GROUP BY userid
注意, IF(subject='语文',score,0) 作为条件,即对所有subject='语文’的记录的score字段进行SUM()、MAX()、MIN()、AVG()操作,如果score没有值则默认为0。
————————————————
原文链接:https://blog.youkuaiyun.com/weixin_45525272/article/details/126477777
该文介绍了如何利用SQL的IF()函数结合SUM()聚合函数,将具有不同subject(如语文、数学、英语、政治)的记录转换为列的形式,对每个科目的score进行求和,当score为空时默认为0。这种方法适用于数据整理和分析。
1774

被折叠的 条评论
为什么被折叠?



