ウィンドウの最初のローの値を返します。
FIRST_VALUE( expression [ { RESPECT | IGNORE } NULLS ] ) OVER ( window-spec )
window-spec : 以下の備考を参照します。
expression 評価する式。たとえば、カラム名です。
引数のデータ型。
FIRST_VALUE 関数を使用すると、セルフジョインを使用せずに、(何らかの順序による) 最初の値を選択できます。最初の値を計算の基準として使用する場合、この関数が役立ちます。
FIRST_VALUE 関数は、ウィンドウの最初のレコードを取得します。次に、最初のレコードに対して expression が比較され、結果が返されます。
IGNORE NULLS を指定すると、expression にある最初の NULL 以外の値が返されます。RESPECT NULLS (デフォルト) を指定すると、最初の値が、それが NULL であってもなくても返されます。
FIRST_VALUE 関数は、その他の大部分の集合関数とは異なり、ウィンドウ指定を行った場合にのみ使用できます。
window-spec の要素は、関数構文の中 (インライン) に指定するか、または SELECT 文の WINDOW 句と組み合わせて指定できます。WINDOW 句の window-spec 定義を参照してください。
SELECT 文での Window 関数の使用方法や実例については、Window 関数を参照してください。
SQL/2003 ベンダ拡張。
次の例は、各従業員の給料と、同じ部署内で最近採用された従業員の給料との関係を、パーセンテージで返します。
SELECT DepartmentID, EmployeeID, 100 * Salary / ( FIRST_VALUE( Salary ) OVER ( PARTITION BY DepartmentID ORDER BY StartDate DESC ) ) AS percentage FROM Employees; |
DepartmentID | EmployeeID | percentage |
---|---|---|
500 | 1658 | 100 |
500 | 1615 | 110.4284624 |
500 | 1570 | 138.8427097 |
500 | 1013 | 109.5851905 |
500 | 921 | 167.4497049 |
500 | 868 | 113.2393688 |
500 | 750 | 137.7344095 |
500 | 703 | 222.8679276 |
500 | 191 | 119.6642975 |
400 | 1751 | 100 |
400 | 1740 | 99.705647 |
400 | 1684 | 130.969936 |
400 | 1643 | 83.9734797 |
400 | 1607 | 175.1828989 |
400 | 1576 | 197.0164609 |
... | ... | ... |
従業員 1658 は部署 500 の最初のローに示されていることから、従業員 1658 がこの部署で最近採用された従業員であることがわかります。パーセンテージは 100% に設定されています。部署 500 の他の従業員のパーセンテージは、従業員 1658 との相対的な値として算出されます。たとえば、従業員 1570 は、従業員 1658 の給料の約 139% に相当する給料を受け取っています。
同じ部署内にいるその他の従業員が、最近採用された従業員と同じ額の給料を受け取っている場合は、その従業員のパーセンテージも 100 になります。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |