…ここで、count(col)> 1
質問
このようなテーブルがあります:
+-----+-----+-------+
| 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;
しかし、オラクルは気に入らなかった。
だからこれを試しました...
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;
所属していません StackOverflow