分析函数中的序列

时间:2012-09-21 15:52:56

标签: oracle oracle11g

我有一个包含name

的表格
 NAME
=========
GAURAV
GAURAV
AJAY
AJAY
=========== 

现在我想使用现有的序列,比如abc_seq,我想对记录进行分组,它会给我name的输出组,每个组具有相同的序列号

我想得到的输出如下所示

name    group
==============
GAURAV    1
GAURAV    1
AJAY      2
AJAY      2
==============

我用分析函数尝试了这个,但是如何在analytical function

的查询中使用序列

2 个答案:

答案 0 :(得分:3)

Dense_rank将完成这项工作。

with t1 as
(
  select 'GAURAV' name from dual union all
  select 'GAURAV' name from dual union all
  select 'AJAY' name from dual union all
  select 'AJAY' name from dual
)

select name
     , dense_rank() over(order by name desc) rn
  from t1

输出:

Name    Rn 
-----------
GAURAV  1 
GAURAV  1 
AJAY    2 
AJAY    2 

这是DEMO

答案 1 :(得分:0)

选择名称,从table_name上方(按名称desc排序)上的dense_rank();

只需使用density_rank()分析函数,即可获得所需的输出。