我有一张这样的答案表:
ID ItemID Answer
1 1 yes
2 1 no
3 1 yes
4 1 yes
5 2 no
6 2 yes
7 3 yes
我想提供一系列 ItemId
然后计算 number of yes answers - number of no answers
对于每个 ItemID
在数组中。
我可以为这样的单个项目执行此操作: SELECT (SELECT count(ID) FROM table WHERE ItemID= <id> AND Answer = 'Yes') - (SELECT count(ID) FROM table WHERE ItemID= <id> AND Answer = 'No') AS difference
但是我如何调整它以在一个查询中处理多个id呢?
我的预期产出 [1,2]
看起来像
ItemID Difference
1 2
2 0
2条答案
按热度按时间nnvyjq4y1#
只需使用条件聚合:
你可以包括
where itemid in (1, 2)
(或类似的东西)如果你想把它限制在特定的项目上。fwzugrvs2#
您可以使用case语句和聚合实现以下查询:
试试这个
演示