各ローにユニークな番号を割り当てます。この関数は NUMBER 関数の代わりに使用できます。
ROW_NUMBER( ) OVER ( window-spec )
window-spec :次の「備考」の項を参照してください
INTEGER
window-spec の要素は、関数構文の中 (インライン) に指定するか、または SELECT 文の WINDOW 句と組み合わせて指定できます。Window 関数として使用する場合、ORDER BY 句を指定する必要があります。また PARTITION BY 句を指定できますが、ROWS 句または RANGE 句は指定できません。WINDOW 句の window-spec 定義を参照してください。
SELECT 文での Window 関数の使用方法や実例については、Window 関数を参照してください。
OVER 句でのウィンドウ指定の詳細については、ウィンドウ定義:OVER 句と WINDOW 句を使用したインライン定義を参照してください。
SQL/2008 ROW_NUMBER は、オプションの SQL/2008 言語機能 T611、「Elementary OLAP operations」の一部です。
次の例は、ニューヨークとユタの各従業員のユニークなロー番号を示す結果セットを返します。クエリは Salary の降順に配列されるため、最初のロー番号は、データセット内で最も給与の高い従業員に割り当てられます。2 人の従業員の給与が同一ですが、2 人の従業員にはユニークなロー番号が割り当てられるため、同順は解決されません。
SELECT Surname, Salary, State, ROW_NUMBER() OVER (ORDER BY Salary DESC) "Rank" FROM Employees WHERE State IN ('NY','UT'); |
Surname | Salary | State | Rank |
---|---|---|---|
Shishov | 72995.000 | UT | 1 |
Wang | 68400.000 | UT | 2 |
Cobb | 62000.000 | UT | 3 |
Morris | 61300.000 | UT | 4 |
Davidson | 57090.000 | NY | 5 |
Martel | 55700.000 | NY | 6 |
Blaikie | 54900.000 | NY | 7 |
Diaz | 54900.000 | NY | 8 |
Driscoll | 48023.690 | UT | 9 |
Hildebrand | 45829.000 | UT | 10 |
... | ... | ... | ... |
Lynch | 24903.000 | UT | 19 |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |