私は、簡単な問題であるべきだと思うことに苦労しています。特定の列の値が重複しているテーブル内のすべての列を選択したいと考えています。
集計関数を使用しようとしましたが、1 つの列で一致させてすべての値を表示したいので、それが制約になっています。集計を使用するには、表示するすべての列を「グループ化」する必要があるようです。
私は、簡単な問題であるべきだと思うことに苦労しています。特定の列の値が重複しているテーブル内のすべての列を選択したいと考えています。
集計関数を使用しようとしましたが、1 つの列で一致させてすべての値を表示したいので、それが制約になっています。集計を使用するには、表示するすべての列を「グループ化」する必要があるようです。
私があなたを正しく理解していれば、これでうまくいくはずです:
SELECT *
FROM YourTable A
WHERE EXISTS(SELECT 1
FROM YourTable
WHERE Col1 = A.Col1
GROUP BY Col1
HAVING COUNT(*) > 1)
このクエリを使用すると、cola を昇順または降順で ORDER BY し、Cola の出力を変更できます。
これがSqlFiddleのデモです。
with cl
as
(
select *, ROW_NUMBER() OVER(partition by colb order by cola ) as rn
from tbl)
select *
from cl
where rn > 1