想求一个mysql sum的问题!!!

image.png
如图,想要展示的结果为:
根据时间区间来获取不同学生的分数总值.
比如我给定日期为1-3到1-4,则展示该日期区间内全部学生的分数总值
注意,这里[赵六]时间虽然卡不上,但是需要展示其名称和分值,这里它的分值为0.因为我搜的只是1-3到1-4考试的学生.

sql的sum需要怎么用呢

阅读 1.7k
1 个回答

你的描述不太清晰,我的理解是你要 学生名 分数 这个格式的数据?
如果不在选定日期内的你也要显示的话,只能先进行一次处理,不在日期内的分数设定为0。然后和在日期内的记录做 UNION 操作,从最终得到的表根据name分组,统计总分数:

SELECT name, SUM(score) FROM
(SELECT name, score FROM user WHERE time='1-3' OR time='1-4'
UNION ALL
SELECT name, 0 as score FROM user WHERE time !='1-3' AND time!='1-4') as t
GROUP BY name;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题