2015-05-04 47 views
-1

我有一个表是这样的:得到总和多块

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 -statement,但我不知道如何。

回答

0

只需添加group by

SELECT name, sum(score) FROM mytable WHERE day<=2 group by name 
+0

哦,那太容易了。谢谢=) – Munchkin

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; 

fiddle demo