ORACLE分组排序查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE分组排序查询相关的知识,希望对你有一定的参考价值。

有一个表,A字段为唯一标示,B字段有重复数据,现在我想以B字段分组,以C字段显示每组的每条记录的子序号从“1”开始往后排。我这张表的数据很大,如果用row_number(),rank()这种函数可以实现,但是查询速度相当慢。哪位能提供一个快速的查询方法,句子多复杂都没事,只要求快。

row_number(),rank()是分析函数,是实现这种需求最高效的方法
你需要大表的排序,速度肯定不会快到哪里去
建议你对需要排序的字段先创建一个索引,会快很多很多
发放依然还是用row_number(),这个比较好
参考技术A 按照你说的功能部分估计只能是
select row_number() as A, B, rank() as C

from yourtable
group by B;
查询速度优化只能优先从数据过滤方面着手

以上是关于ORACLE分组排序查询的主要内容,如果未能解决你的问题,请参考以下文章

Oracle如何分组排序?

Oracle分组查询取每组排序后的前N条记录

oracle 分组中排序(rank函数)

oracle:数值型函数,日期函数,转换函数,组函数,分组,排序,两表查询连接

solr group分组排序的问题

oracle里面怎么多个字段分组排序