如何通过ID选择值的总和?的SQL

时间:2019-12-07 21:25:46

标签: mysql sql

所以,我有一张记录如下的表:

ID  ORDERS
1    4
1    1
2    4
3    1
3    2

我需要创建一个查询来导致这种情况:

ID ORDERS
1   5
2   4

我尝试过select id, count(orders) from table group by id having count(orders) > 3 但是我得到的只是一个奇怪的结果,我的ID被奇怪地编号。

3 个答案:

答案 0 :(得分:1)

您需要求和而不是计数:

select id, sum(orders) 
from table 
group by id 
having sum(orders) > 3

答案 1 :(得分:0)

更改尝试,使您SUM(orders)而不是COUNT(orders)

计数不起作用,因为对于任何非null值,它都将计数器加一,而对于null值,则不会递增。在下表中:

ID, name
1, John
2, null 
3, Jane
null, null

COUNT(id)将返回3-有3个非空ID值。 COUNT(name)将返回2-有两个非null值。 SUM(ID)将返回6-ID的数值之和为6。SUM查看值是多少,而COUNT不是。 SUM将空值视为0。特殊情况COUNT(*)将对行的存在进行计数,即使其所有值均为空也是如此。 COUNT(*)将返回4-结果中有4行

答案 2 :(得分:0)

MySQL支持通过sum汇总值,如下所示:

select id, sum(orders) from test group by id;

另请参阅DB Fiddle