说我有一个包含很多数字的数据集。 我可以这样查询
select count(*) from Dataset
但是SQL不允许我在count函数中进行>比较
select count(num>10) from Dataset
那是为什么?
我知道select count(*) from Dataset where num > 10
会做的。
我在这里只是简化我的问题posted previously,因为我有一个更复杂的查询,其中应用了>比较,其中不能使用 where 。
如何在count
中使用>而不使用位置?
答案 0 :(得分:4)
您可以在CASE
内使用一个COUNT
表达式,当条件不成立时,该表达式将返回NULL
。
SELECT COUNT(CASE WHEN num > 10 THEN 1 END) FROM Dataset
答案 1 :(得分:2)
如果您尝试直接运行SQL查询,则可以使用GROUP BY HAVING在COUNT中使用过滤器操作,如下所示:
SELECT myId FROM myTable Group By myId HAVING Count(*) > 10