[英]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
从列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.