私は、ユーザのフラグを立てるコンテンツのインスタンスを格納するSQLテーブルを持っています。これが私のテーブルです:テーブルにX回現れるレコードを返すSQLクエリ
Flagged Content
1. instance_id
2. content_id
3. user_id`
は今、私はflagged content
テーブル内で少なくとも3
回表示されるすべてのcontent_id
を返すクエリを実行します。しかし、私はどのように進めるか分からない。
私は、ユーザのフラグを立てるコンテンツのインスタンスを格納するSQLテーブルを持っています。これが私のテーブルです:テーブルにX回現れるレコードを返すSQLクエリ
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 BY flagged_content グループから をCONTENT_ID HAVING count(instance_id)> 3;
またはinstance_idを主キー/非NULL列に置き換えます。 (すべてのRDBMSでcount(*)が機能するかどうかは不明)
表示されていない。 –
[count> 1のレコードを検索するためのSQLクエリの可能な重複](http://stackoverflow.com/questions/7151401/sql-query-finding-records-where-count-1) – Jeff