Oracle分組取前三

2021-10-08 06:45:18 字數 480 閱讀 8958

oracle分組取前三

row_number() over函式的基本用法

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

從1開始,為每一條分組記錄返回乙個數字,相當於row_num一樣的東西,之後再取最小的幾個

order by是先把列進行排序,排序之後為每條記錄返回乙個序號。

select * from (

select m.id,m.num,m.inst_no,row_number()over(partition by m.inst_no order by m.num desc) e

from mk_mon_en m)

t where t.e <= 2

mk_mon_en 表取別名m,根據m.num進行降序排列,row_number()對所有記錄新增乙個序號,子查詢取出全部結果,外層查詢取出子查詢中序號小於2的記錄

oracle分組排序取前幾

專案需求 分組排序 1 要求取出按field1分組後,並在每組中按照field2排序 2 根據要求取出1中已經分組排序好的前多少行的資料 row number over partition by col1 order by col2 表示根據col1分組,再分組內部根據col2排序,而此函式計算的值...

oracle分組取前5條資料

語句如下 select from select t.row number over partition by 分組字段 order by 排序字段 rn from 表名字 t where rn 6 示例 select from select t.row number over partition b...

分組後取前N條

這種題目面試中經常出現,記錄一下 首先建表 create table students id int 11 not null auto increment comment 學號 clss id varchar 2 default null comment 班級id stu name varchar ...