码迷,mamicode.com
首页 > 数据库 > 详细

mysql或者oracle分组排序取前几条数据

时间:2018-06-13 21:08:19      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:mysq   mysql   where   分组   row   数据   des   sel   ora   

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分组排序取前几条数据

标签:mysq   mysql   where   分组   row   数据   des   sel   ora   

原文地址:https://www.cnblogs.com/caoql/p/9179374.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!