我有这样的数据
现在,我需要一个查询来获取Info为“Yes”的ID计数以及同时为“Yes”和“No”的ID计数
单一查询:
SELECT COUNT(id) FROM table WHERE info = 'yes'
以及
SELECT COUNT(id) FROM table WHERE info = 'yes' AND info = 'No'
自
Id having Yes are 7 (1,2,3,4,5,6,7)
and Id having and Yes and No both vaules are only 3 (1,4, 6)
it should give me id_as_yes = 7 and id_as_yes_no = 3
4条答案
按热度按时间2ic8powd1#
您可以使用聚集和窗口函数执行此操作:
请参见demo。
结果:
lvjbypge2#
您需要条件聚合。
js4nwp543#
您可以在没有子查询的情况下执行此操作。这依赖于以下观察结果:仅为“no”的id的数量为:
对于肯定的数目也是如此,所以,两者都有的数目等于id的数目减去否定的数目再减去肯定的数目:
ws51t4hk4#
这应该可以解决问题......它肯定不是高效或优雅的,但没有空值聚合警告
dbFiddle link