2016-09-23 53 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)