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

Gab*_*ega 4 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
Run Code Online (Sandbox Code Playgroud)

选择每种类型超过4个孩子至少两次的动物以及发生这种情况的次数.

示例输出:

Animal   Count
Cow      2
Run Code Online (Sandbox Code Playgroud)

我尝试过以下方面的事情:

SELECT  animal
FROM Table
WHERE NumKids>4 AND COUNT((NumKids>4)>2);
Run Code Online (Sandbox Code Playgroud)

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

Rom*_*syk 6

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

请尝试以下查询

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

  • 既然 OP 要求“至少两次”,它不应该是“HAVING COUNT(*) >=2”吗? (2认同)