0

入力に次の表があります。

FootnoteField FootnoteText
Field1 blabla
Field2 ブラブラ
Field3 ブラブラ
Field4 zzzzzzzzzz
Field5 ブラブラブラ
Field6 プルーフ

FootnoteText が同一の行に同じ整数を割り当てる増分整数列を追加するにはどうすればよいですか? これは私がここで達成しようとしているものです:

FootnoteField FootnoteText 番号
Field1 blabla 1
Field2 blabla 1
Field3 blabla 1
Field4 zzzzzzzzzz 2
Field5 ブラブラブラ 3
Field6 プルーフ 4
4

2 に答える 2

1

あなたはおそらく欲しいDENSE_RANK()

SELECT *, DENSE_RANK() OVER(ORDER BY FootnoteText)
FROM YourTable

いくつかのグループの各値に対して番号付けを最初からやり直したい場合にのみ必要PARTITION BYです。つまり、毎日番号付けを0から開始したいので、PARTITION BY Some_Date

デモ: SQL フィドル

于 2013-09-23T16:35:41.370 に答える
1

でデータを並べ替える必要がない場合はFootnoteField、GoatCo の回答を使用できます。

しかし、そうする場合:

with cte as (
    select
        FootnoteText, FootnoteField,
        min([FootnoteField]) over(partition by FootnoteText) as min_FootnoteText
    from Table1
)
select 
    FootnoteText, FootnoteField,
    dense_rank() over(order by min_FootnoteText)
from cte

sql fiddle demo

于 2013-09-23T16:53:00.350 に答える