SQL 排序後按組顯示排名編號

2022-09-13 03:54:15 字數 1616 閱讀 2455

table1表結構如下

id  group1  group2  money

2232  gp1  aaa     234.3

2233  gp2  bbb     90.3

2234  gp1  aaa     804.39

2235  gp2  bbb     0

2236  gp2  bbb     88

2237  gp1  aaa     7

2238  gp1  aaa     234.3             

2239  gp2  bbb     88             

需要獲得如下查詢結果:

id  group1  group2  money   num

2234  gp1  aaa     804.39      1

2232  gp1  aaa     234.3        2

2238  gp1  aaa     234.3        2

2237  gp1  aaa     7              3

2233  gp2  bbb     90.3         1

2236  gp2  bbb     88            2

2239  gp2  bbb     88            2

2235  gp2  bbb     0              3

其中num是按group1 ,group2  排序後增加的編號列

sql語句如下:

select id,group1,group2,money

,(select count(money) from table1 where group1=a.group1 and group2=a.group2 and money>=a.money) as num

from table a

order by group1,group2,money desc

另一種排序的

需要獲得如下查詢結果:

id  group1  group2  money   num

2234  gp1  aaa     804.39      1

2232  gp1  aaa     234.3        2

2238  gp1  aaa     234.3        3

2237  gp1  aaa     7              4

2233  gp2  bbb     90.3         1

2236  gp2  bbb     88            2

2239  gp2  bbb     88            3

2235  gp2  bbb     0              4

sql語句如下:

select id,group1,group2,money

,(select count(id) from table1 where group1=a.group1 and group2=a.group2 and money>=a.money) as num

from table a

order by group1,group2,money desc

SQL實現group by 分組後組內排序

在乙個月黑風高的夜晚,自己無聊學習的sql的時候,練習,突發奇想的想實現乙個功能查詢,一張成績表有如下字段,班級id,英語成績,資料成績,語文成績如下圖 實現 查詢出 每個班級英語成績最高的前兩名的記錄。看起來不難的業務,做起來才知道還挺麻煩的,說白了其實就是實現分組後的組內排序,一般不思考的話我們...

MySQL按天排序顯示

如果資料庫中的儲存的時間是11位的時間戳,先需要轉化為日期格式 from unixtime 列名,format format 格式有 y 年,數字,4位 y 年,數字,2位 m 月名字 january december m 月,數字 01 12 c 月,數字 1 12 b 縮寫的月份名字 jan d...

SQL語句之按in排序

有時候我們需要按照in條件裡的id順序輸出結果,可sql語句在不加order by的時候是按照asc排序的,下邊的sql解決按照in條件順序的id輸出查詢結果 mysql寫法 select from event where eventid in 443,419,431,440,420,414,509...