2016-07-18 4 views
1

私たちは、簡単に次のようなSQLの結果を得ることができます。oracleで "order by" sqlによって返された別のカテゴリのインデックスを取得する方法は?

SQL>select Name, Value from table order by Name; 

Name Value 
------------ 
A  1 
A  2 
B  1 
C  5 
C  6 
C  7 

しかし、異なる名前のインデックスを形成することができる数に名前をリンクする方法はありますか?テーブルにいくつの名前があるのか​​分からず、その名前が分からないとします。

Name Value idx 
----------------- 
A  1  0 
A  2  0 
B  1  1 
C  5  2 
C  6  2 
C  7  2 

答えて

2

これは簡単に窓関数を使用して行うことができます。

select Name, 
     Value, 
     dense_rank() over (order by name) - 1 as idx 
from table 
order by Name; 
+0

感謝を!これはまさに私が欲しいものです! – DustinZhang

関連する問題