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即可

浙公网安备 33010602011771号