oracle或mysql获取分组后每组的前三条数据
2015-07-25 22:18
549 查看
mysql :
oracle:
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 ;
相关文章推荐
- oracle date 比较
- Oracle 默认日期格式修改
- oracle spfile 文件不要随便修改
- oracle 表或视图不存在
- oracle之ROWNUM的查询应用
- Oracle常见问题,及处理。
- oracle 多行插入 insert all
- oracle报错:无法找到会话标识符。启用检查 PLUSTRACE 角色
- Select count(*)和Count(1)的区别和执行方式
- Select count(*)和Count(1)的区别和执行方式
- Java培训-ORACLE数据库学习【2】用户权限
- Oracle数据库语句大全
- oracle中varchar、varchar2、char和nvarchar的区别
- DbHelper and OracleHelper
- archive log文件大小与redo log文件大小关系探究
- Oracle connect by 树查询之三(超详细)
- Oracle 11g 采用冷备异机恢复数据库
- oracle 存储过程访问其他用户的表
- Oracle connect by 树查询之二
- Oracle VirtualBox 安装增强工具包:“building the main guest additions module 失败” 原因及解决方法