1. 程式人生 > >mysql或者oracle分組排序取前幾條數據

mysql或者oracle分組排序取前幾條數據

esc rom group over nbsp oracle oracl 排序 _id

mysql:

select a.*
from
(
select t1.*,(select count(*)+1 from 表 where 分組字段=t1.分組字段 and 排序字段<t1.排序字段) as group_id
from 表 t1
) a
where a.group_id<=3

Oracle:

SELECT t.*
FROM (SELECT ROW_NUMBER() OVER(PARTITION BY 分組字段 ORDER BY 排序字段 DESC) rn,
b.*
FROM 表 b) t
WHERE t.rn <= 3 ;

mysql或者oracle分組排序取前幾條數據