MYSQL数据二维展示方法

问题:

现在要对每位同学整个学期的考试成绩分科进行统计,现有数据表t_student_score

id name subject score
1 王小明 数学 89
2 王小二 数学 77
3 王富贵 语文 80
4 王小明 语文 92
5 王小明 英语 80
6 王小二 数学 75

现在想通过SQL查询得到每位同学每一科的总分

姓名 语文 数学 英语
王小明 92 89 80
王小二 152 0 0
王富贵 80 0 0

解决方法

使用SUM()IF() 函数

select name as 姓名, 
SUM(IF(subject = '语文', score, 0)) as 语文, 
SUM(IF(subject = '数学', score, 0)) as 数学, 
SUM(IF(subject = '英语', score, 0)) as 英语 
from t_student_score
group by name

IF()函数的使用方法

IF(条件, 条件为真返回, 条件为假返回)

PS:另外,如果需要统计COUNT,则为假时返回NULL即可

posted @ 2022-03-12 22:59  云の彼端  阅读(128)  评论(0)    收藏  举报