我有一张这样的表:
name | day | score
------------------
John | 1 | 4
John | 2 | 5
John | 3 | 6
Marc | 1 | 7
Marc | 2 | 4
Marc | 3 | 5
Paul | 1 | 8
Paul | 2 | 2
Paul | 3 | 3
我希望获得每个人的得分总和,但仅限于特定日期,按此总和排序。让我们说我想得到1和2天的得分和,这就是我的期望:
name | sum(score)
-----------------
Marc | 11
Paul | 10
John | 9
这是失败的:
SELECT name, sum(score) FROM mytable WHERE day<=2
我想我必须用sum(score)
声明一些IF
部分声明,但我不知道如何。
答案 0 :(得分:0)
只需添加group by
SELECT name, sum(score) FROM mytable WHERE day<=2 group by name
答案 1 :(得分:0)
使用sum
函数和group by
子句对结果进行分组。
<强>查询强>
select name,sum(score) as score
from myTable
where day in (1,2)
group by name
order by sum(score) desc;