sql 分組後 組內排名

2022-08-01 14:00:11 字數 455 閱讀 2489

語法:row_number() over(partition by column order by column)

簡單的說row_number()從1開始,為每一條分組記錄返回乙個數字,這裡的row_number() over (order by xlh desc) 是先把xlh列降序,再為降序以後的沒條xlh記錄返回乙個序號。

示例:

xlh           row_num

1700              1

1500              2

1085              3

710                4

row_number() over (partition by col1 order by col2) 表示根據col1分組,在分組內部根據 col2排序,而此函式計算的值就表示每組內部排序後的順序編號(組內連續的唯一的)

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

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

SQL,計算group by分組後組內不同值的數量

如現有一張購物表shopping name cargo小明筆 小明橡皮小明筆 小明橡皮 小明橡皮小紅筆 小紅橡皮 小紅橡皮 現要求小明和小紅分別買了多少筆和多少橡皮,形成以下格式姓名筆 橡皮小明23 小紅12select name as 姓名,sum case when cargo 筆 then 1...

sql分組排名

資料庫teradata 班級科目成績表 create multiset table pd portal.aaa no fallback no before journal,no after journal,checksum default banji varchar 40 character set...