1

IDがまだ取得されていない場合は、データセットから各グループの最初のIDを取得する方法を理解してください...私はFIRST後の最初の番号を、(等しい、関係ありません) 各IDまたは値の場合:それを説明するために知っている、だから私はここにダウンを説明します:SQL内の各グループに対して新しいId + 1を取得

 
Id | Col1 | Col2 | Value | Number 
------+-------+------+----------+------- 
17525 | A  | B | 1086.00 | 1 
17525 | A  | B | 1086.00 | 2 
17525 | A  | B | 1086.00 | 3 
17526 | A  | B | 1378.00 | 1 
17526 | A  | B | 1378.00 | 2 
17526 | A  | B | 1378.00 | 3 
17527 | A  | B | 1498.00 | 1 
17527 | A  | B | 1498.00 | 2 
17527 | A  | B | 1498.00 | 3 

そして、私はこのような何かを取得したいですすでに他のグループから取得されています。 1はすでに最初に取られているので、私は、ナンバー2がかかりますよ、私は2番目の値1378.00のために、1番取るよ最初の値、1086.00のためにそう

 
Id | Col1 | Col2 | Value | Number 
------+-------+------+----------+------- 
17525 | A  | B | 1086.00 | 1 
17526 | A  | B | 1378.00 | 2 
17527 | A  | B | 1498.00 | 3 

:このような

何か値。

ROW_NUMBERを使用して3時間試行しましたが、再帰CTEがMax Recursion Limit 100エラーを受け入れることができませんでした。

Please HELP!

ありがとうございました。

答えて

2

あなたがdense_rank()を使用して検討している:?

select distinct Id, Col1, Col2, Value 
    , dr = dense_rank() over (order by Id) 
from t 

リターン:

+-------+------+------+---------+----+ 
| Id | Col1 | Col2 | Value | dr | 
+-------+------+------+---------+----+ 
| 17525 | A | B | 1086,00 | 1 | 
| 17526 | A | B | 1378,00 | 2 | 
| 17527 | A | B | 1498,00 | 3 | 
+-------+------+------+---------+----+ 
+0

私はあなたが価値で注文するべきだと思います。 –

+0

@AlexanderSharovarovおそらく。質問は "Id OR Value(問題ではない、等しい)" – SqlZim

+0

Omg ... dense_rank()はSQL2008R2でサポートされていません!私はこれをテストしなければならない...ありがとう! – SanRyu

関連する問題