2011-05-30 77 views
2

我正在使用Oracle。SQL分析函数 - 如何将数字分配给分区?

假设我有这个样表,随机,内容:

columnA  | columnB | content 
-------------------------------- 
AfBkxZ  | 292  | a 
LDglkK  | 181  | b 
AfBkxZ  | 51  | c 
AfBkxZ  | 315  | d 
LDglkK  | 808  | e 
Cee89g  | 1  | f 

我想有一个视图中,我有在columnA每个值的唯一编号,并记录编号内的行对于哪个columnA具有该值。基于上述采样数据

求购结果:

Group_number | Record_number | columnB | content 
------------------------------------------------ 
1   | 2    | 292  | a    (1.2) 
3   | 1    | 181  | b    (3.1) 
1   | 1    | 51  | c    (1.1) 
1   | 3    | 315  | d    (1.3) 
3   | 2    | 808  | e    (3.2) 
2   | 1    | 1  | f    (2.1) 

我可以得到与record_numberrow_number() over (partition by columnA order by columnB asc)

如何获得group_number这实际上是旧的columnA的友好序列别名?

谢谢。

回答

5

你可以使用dense_rank数点columnA:

dense_rank() over (order by columnA)