SQL - 使用COUNT()作为WHERE条件

时间:2017-10-04 08:21:50

标签: sql count

我正在尝试选择多次满足某个条件的行以及满足该条件的次数。

例如,对于表:

Animal    ID    NumKids      PostCode
Cow       1202  5            1405
Cow       3492  6            4392
Chicken   4535  1            2394
Alpaca    2432  0            3453
Cow       2432  3            6253
Chicken   2342  5            4444

选择每种类型超过4个孩子至少两次的动物及其发生的次数。

示例输出:

Animal   Count
Cow      2

我尝试了以下方面的内容:

SELECT  animal
FROM Table
WHERE NumKids>4 AND COUNT((NumKids>4)>2);

但是输出中存在明显的错误(仅输出动物名称而不是计数)并使用COUNT()作为条件。

1 个答案:

答案 0 :(得分:6)

您不能在COUNT((NumKids>4)>2)子句中直接使用聚合(WHERE),这是HAVING子句的用途。

尝试以下查询

select 
  Animal, COUNT(*) AS Count
from Table
where NumKids > 4
group by Animal
having COUNT(*) >= 2