显示特定列中出现特定次数的值

时间:2013-10-08 08:47:27

标签: sql oracle

我正在尝试显示仅符合我的条件的值,这是基于出现的次数。 假设下表:

+--------------+----------------+  
| account_id   | campaign_id    |  
+--------------+----------------+  
|        234   |         980    |  
|        893   |         458    |  
|        234   |         178    |  
|        097   |         741    |  
|        893   |         584    |  
|        893   |         452    |  
|        109   |         789    |  
+--------------+----------------+ 

我需要显示只有两个或更多campaign_ids的account_ids。因此对于上述表格,结果应该是:
234
893

count表达式上使用where是不可能的。我用过:
CASE WHEN count(account_id) >= 2 THEN es.entity_name ELSE NULL
END AS Live_date

然而,它有如此多的记录与我的查询无关。我发现的大多数相关问题都是关于找出出现次数而不是将其作为一个条件。还有其他解决办法。

2 个答案:

答案 0 :(得分:1)

请尝试使用HAVING条款:

select 
  account_id 
From YourTable 
group by account_id 
having count(*)>=2

答案 1 :(得分:1)

select account_id
from   table
group by account_id
having count(*) >= 2