2011-05-30 72 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)