获得多个块的总和

时间:2015-05-04 08:44:10

标签: mysql sum

我有一张这样的表:

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部分声明,但我不知道如何。

2 个答案:

答案 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;

fiddle demo