繁体   English   中英

按计数逐列选择多个列

[英]select multiple columns group by one column order by count

我在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组中选择c1开始按c1顺序计数(*)desc,但不是如何继续。

试试这个:

这几乎适用于所有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小提琴演示

从列c1获取所有重复项可以通过简单的排序来实现:

SELECT * FROM <table> ORDER BY C1 ASC
select c1,c2,c3
from tbl
order by count(*) over (partition by c1) desc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM