Sybase IQ 12.7 사용자 설명서

다운로드
페이지 212
統計関数
 
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