Manual background

統計関数

インラインのウィンドウ指定。クエリ式の 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

74

Sybase IQ

Page 90
Image 90
Sybase 12.7 manual Sybase IQ