私はこのようなテーブルを持っています:
+-----+-----+-------+
| id | fk | value |
+-----+-----+-------+
| 0 | 1 | peter |
| 1 | 1 | josh |
| 3 | 2 | marc |
| ... | ... | ... |
ここで、複数の値を持つすべてのエントリを取得します。期待される結果は次のとおりです。
+-----+-------+
| fk | count |
+-----+-------+
| 1 | 2 |
| ... | ... |
私はこのようにそれを達成しようとしました:
select fk, count(value) from table where count(value) > 1;
しかし、Oracleはそれを好みませんでした。
だから私はこれを試しました...
select * from (
select fk, count(value) as cnt from table
) where cnt > 1;
...成功しませんでした。
何か案は?
集計を比較するには、having
句を使用します。
また、クエリを正しく機能させるには、集計対象ごとにグループ化する必要があります。以下は開始ですが、group by句がないため、まだ機能しません。正確に何をカウントしようとしていますか?
select fk, count(value)
from table
group by fk
having count(value) > 1;