我有一个SQL表,负责存储用户标记内容的实例。这是我的表:
Flagged Content
1. instance_id
2. content_id
3. user_id`
现在我想执行一个查询,该查询返回在content_id
表中至少出现3
次的所有flagged content
。但是,我不知道该怎么办。
答案 0 :(得分:1)
SELECT content_id
FROM flagged_content
GROUP BY content_id
HAVING COUNT(*) >= 3
答案 1 :(得分: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;
答案 2 :(得分:0)
SELECT content_id 来自flagged_content GROUP BY content_id HAVING count(instance_id)> 3;
或将instance_id替换为主键/非空列。 (不确定count(*)是否适用于所有RDBMS)