0

我有一个有列的表name

 NAME
=========
GAURAV
GAURAV
AJAY
AJAY
=========== 

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

我想得到的输出如下所示

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

我已经用分析功能尝试过这个,但是如何在查询中使用序列analytical function

4

2 回答 2

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 

这是一个演示

于 2012-09-21T15:59:44.943 回答
0

select name,dense_rank() over (order by name desc) from table_name;

只需使用dense_rank() 解析函数,就可以得到想要的输出。

于 2019-09-30T05:51:58.617 回答