簡體   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