我有一個SQL表負責存儲用戶標記內容的實例。這是我的表:SQL Query返回表中出現X次的記錄
Flagged Content
1. instance_id
2. content_id
3. user_id`
現在我想執行一個查詢返回所有出現在flagged content
表中至少3
倍content_id
。但是,我不知道如何繼續。
我有一個SQL表負責存儲用戶標記內容的實例。這是我的表:SQL Query返回表中出現X次的記錄
Flagged Content
1. instance_id
2. content_id
3. user_id`
現在我想執行一個查詢返回所有出現在flagged content
表中至少3
倍content_id
。但是,我不知道如何繼續。
可以使用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;
SELECT content_id
FROM flagged_content
GROUP BY content_id
HAVING COUNT(*) >= 3
SELECT CONTENT_ID FROM flagged_content GROUP BY的content_id HAVING count(instance_id)> 3;
或用主鍵/非空列替換instance_id。 (不知道計數(*)是否適用於所有RDBMS)
沒有嘗試顯示。 –
可能重複的[SQL查詢查找記錄where count> 1](http://stackoverflow.com/questions/7151401/sql-query-for-finding-records-where-count-1) – Jeff