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