所以,我有一张记录如下的表:
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被奇怪地编号。
答案 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)