我想请求帮助我想计算记录数,但只有一个列的2个特定值有两个条件:
首先计算记录:
将(服务)作为联系人
service | state | address
service1| 1 |123
service2| 1 |321
service3| 3 |332
service1| 2 |333
service2| 2 |111
service3| 3 |333
第一个结果
Service | Contacts | status
service1| 1 | 1
service1| 1 | 2
service1| 1 | 3
service2| 1 | 1
service2| 1 | 2
service2| 1 | 3
如果状态= 1和2则添加到其他0(仅计算' s"状态"等于1和2。
结果:
最终结果
Service | Contacts
Service1 | 2
Service2 | 2
抱歉这令人困惑
谢谢你的大力帮助
答案 0 :(得分:1)
这适用于所有主要数据库
SELECT service,
SUM(CASE WHEN status IN(1,2) THEN contacts ELSE 0 END) as Contacts
FROM (your query) as x
GROUP BY service
答案 1 :(得分:0)
select service,
sum(case when status in(1,2) then contacts else 0 end) as contact_count
from MyTable
group by service
这样做是评估每一行,并在contacts
中包含sum
值,其中状态是必需的值。由于它是聚合,您需要按service