Sybase 12.7 manual Sybase IQ

Models: 12.7

1 212
Download 212 pages 60.16 Kb
Page 90
Image 90
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