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

从 t1 group by c1 order by count(*) desc 开始 select c1,但不知道如何继续。

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 回答