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...