2016-09-23 52 views
-1

我有一个SQL表负责存储用户标记内容的实例。这是我的表:SQL Query返回表中出现X次的记录

Flagged Content 

1. instance_id 
2. content_id 
3. user_id` 

现在我想执行一个查询返回所有出现在flagged content表中至少3content_id。但是,我不知道如何继续。

+1

没有尝试显示。 –

+0

可能重复的[SQL查询查找记录where count> 1](http://stackoverflow.com/questions/7151401/sql-query-for-finding-records-where-count-1) – Jeff

回答

1

可以使用group by得到计数:

select content_id 
from flagged_content fc 
group by content_id 
having count(*) >= 3; 

如果你想原始记录,然后用join

select fc.* 
from flagged_content fc join 
    (select content_id 
     from flagged_content fc 
     group by content_id 
     having count(*) >= 3 
    ) c 
    on fc.content_id = c.content_id; 
1
SELECT content_id 
FROM flagged_content 
GROUP BY content_id 
HAVING COUNT(*) >= 3 
0

SELECT CONTENT_ID FROM flagged_content GROUP BY的content_id HAVING count(instance_id)> 3;

或用主键/非空列替换instance_id。 (不知道计数(*)是否适用于所有RDBMS)