Oracle分组查询取每组排序后的前N条记录
2016-12-01 12:13
274 查看
项目中用到Oracle分组查询取每组排序后的前N条记录,group by 只能返回每个组的单条统计。所以用OVER(PARTITION BY)函数,具体详见baidu.com
建个测试表test_abc,如图:
要求查询出按B字段进行分组,每组取C值最大的前3位。
查询sql为 :
select * from (
SELECT b,c,row_number() OVER(PARTITION BY b ORDER BY c desc) e FROM test_abc) t where e <= 3
查询结果截图:
记录完毕!
建个测试表test_abc,如图:
查询sql为 :
select * from (
SELECT b,c,row_number() OVER(PARTITION BY b ORDER BY c desc) e FROM test_abc) t where e <= 3
查询结果截图:
记录完毕!
相关文章推荐
- oracle分组查询第一条记录和每组的个数
- oracle查询:分组查询,取出每组中的第一条记录
- oracle查询:分组查询,取出每组中的第一条记录
- 分组排序之后,查询每组排序第一的记录
- ORACLE 分组排序取每组的第一条记录
- mysql分组取每组前几条记录(排序)
- 分组查询取最大时间记录的方法Oracle
- oracle小记1--分组 排序 取最新时间记录
- 【Oracle】day04_子查询_分页查询_DECODE_排序_集合操作_高级分组
- [转]取出分组后每组的第一条记录(不用group by)按时间排序
- oracle多表分组查询,每组拿出最新一条数据
- oracle查询:取出每组中的第一条记录
- ORACLE学习之旅——分组取每组数据中最近的一条记录
- 如何在Oracle中查询排序后的第一条记录
- MySQL 查询分页数据中分组后取每组的前N条记录
- oracle 保存查询结果,查询分组后的没组的第n条记录
- 取出分组后每组的第一条记录(不用group by)按时间排序---转
- 分组排序,取每组前N条记录
- 对多数据进行分组排序后取每组第一条记录
- 取出分组后每组的第一条记录(不用group by)按时间排序