4

Oracle に次のデータ セットがあります。

c1   c2   c3
1A2  cat  black
1G2  dog  red
B11  frog green
1G2  girl  red

次の結果を取得しようとしています。基本的に、最初に c1 が重複する行を取得しようとしています。

c1   c2   c3
1G2  dog  red
1G2  girl  red
B11  frog green
1A2  cat  black

select c1 from t1 group by c1 order by count(*) desc から始めましたが、続行する方法はありません。

4

3 に答える 3

4

これを試して:

これは、ほとんどすべてのRDBMSで機能します

SELECT  t.c1, t.c2,t.c3 
FROM    your_table t
JOIN(
        select c1,count(*) as cnt from your_table
        group by c1 )a
ON      a.c1=t.c1
ORDER BY a.cnt desc,t.c2,t.c3


SQLフィドルデモ

于 2012-09-27T06:20:44.907 に答える
0

列c1からすべての重複を取得するには、次の簡単な順序で実行できます。

SELECT * FROM <table> ORDER BY C1 ASC
于 2012-09-27T06:17:07.180 に答える
0
select c1,c2,c3
from tbl
order by count(*) over (partition by c1) desc
于 2012-09-27T06:20:25.073 に答える