oracle 實現分組排序

2021-05-22 20:30:47 字數 600 閱讀 4376

select t.*, t.rowid,rank() over (partition by t.classid order by t.score,t.classid) from tablename t

按照classid分組,並按照classid公升序,同時分數公升序排列。

注意:

對於每個分組,比如classid=1和classid=2的兩大類,rank都是從1開始重新排序的,

因此,如果想按score公升序排序,按classid降序排序,sql如下:(不能用rank as 的虛擬列進行排序)

select t.*, t.rowid,rank() over (partition by t.classid order by t.score asc) from tablename t order by t.classid desc

rank是oracle提供的函式,目前在oracle10g測試通過,

以前遇到的mysql不知道怎麼辦啊。。。

oracle就是強大啊,

關於分組查詢還提供了一些函式:

oracle分組排序

在做統計是很多情況會用到分組排序 結合談論的方法 自己建了乙個demo驗證 留在這裡以便備份 create table student2 student id number primary key,student name varchar2 30 not null create table scor...

Oracle 分組排序函式

專案開發中,我們有時會碰到需要分組排序來解決問題的情況 1 要求取出按field1分組後,並在每組中按照field2排序 2 亦或更加要求取出1中已經分組排序好的前多少行的資料 這裡通過一張表的示例和sql語句闡述下oracle資料庫中用於分組排序函式的用法。1.row number over ro...

Oracle 分組排序問題

a b兩個表,分別存的是使用者的收入和支出 a表 id date user income fid fdate fuser fincome 1 2018 8 1 張三 11.00 2 2018 8 2 張三 12.00 3 2018 8 2 李四 21.00 4 2018 8 3 張三 13.00 5...