Sybase 12.7 Home Theater System User Manual


 
統計関数
74 Sybase IQ
インラインのウィンドウ指定。クエリ式の SELECT リスト内でウィンド
ウを定義します。これにより、HAVING 句の後のウィンドウ句でウィンド
ウを定義し、それをウィンドウ関数呼び出しから名前で参照するという方
法に加えて、関数呼び出しと一緒にウィンドウを定義するという方法が可
能になります。
注意 インラインのウィンドウ指定を使用する場合は、ウィンドウの名前
を指定できません。1 つの SELECT リスト内で複数のウィンドウ関数呼
び出しが同じウィンドウを使用する場合には、ウィンドウ句で定義した名
前付きウィンドウを参照するか、インラインのウィンドウ定義を繰り返す
必要があります。
ウィンドウ関数の例 ウィンドウ関数の例を次に示します。このクエリでは、デー
タを部署別のパーティションに分け、在社年数が最も長い従業員を基点とした従
業員の累積給与を計算して、結果セットを返します。この結果セットには、マサ
チューセッツ在住の従業員だけが含まれます。Sum_Salary カラムには、従業員
の給与の累積和が含まれます。
SELECT dept_id, emp_lname, start_date, salary,
SUM(salary) OVER (PARTITION BY dept_id ORDER BY
start_date rows between unbounded preceding and
current row) AS sum_salary
FROM employee
WHERE state IN ('MA') AND dept_id IN (100, 200)
ORDER BY dept_id;
次の結果セットは部署別に分割されています。
dept_id emp_lname start_date salary sum_salary
------- --------- ----------- ------ -----------
100 Whitney 1984-08-28 45700.000 45700.000
100 Cobb 1985-01-01 62000.000 107700.000
100 Breault 1985-06-17 57490.000 165190.000
100 Shishov 1986-06-07 72995.000 238185.000
100 Driscoll 1986-07-01 48023.690 286208.690
100 Guevara 1986-10-14 42998.000 329206.690
100 Gowda 1986-11-30 59840.000 389046.690
100 Melkisetian 1986-12-06 48500.000 437546.690
100 Pastor 1987-04-26 74500.000 512046.690
100 Lull 1987-06-15 87900.000 599946.690
100 Rabkin 1987-06-15 64500.000 664446.690
100 Siperstein 1987-07-23 39875.500 704322.190
100 Scott 1987-08-04 96300.000 800622.190
100 Sullivan 1988-02-03 67890.000 868512.190
100 Samuels 1988-03-23 37400.000 905912.190
100 Wang 1988-09-29 68400.000 974312.190
100 Marshall 1989-04-20 42500.000 1016812.190
100 Soo 1990-07-31 39075.000 1055887.190
100 Diaz 1990-08-19 54900.000 1110787.190