Sybase 12.7 manual 例:累積和の計算, 例:移動平均の計算, Sybase IQ, その他の Olap の例, dept_id, start_date, name, salary

Models: 12.7

1 212
Download 212 pages 60.16 Kb
Page 108
Image 108
例:累積和の計算

その他の OLAP の例

例:累積和の計算

このクエリでは、ORDER BY start_date の順序に従って、部署別の給与の累 積和を計算します。

SELECT dept_id, start_date, name, salary, SUM(salary) OVER (PARTITION BY dept_id ORDER BY start_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)

FROM emp1

ORDER BY dept_id, start_date;

このクエリの結果セットを次に示します。

dept_id

start_date

name

salary

sum(salary)

-------

----------

----

------

-----------

100

1996-01-01

Anna

18000

18000

100

1997-01-01

Mike

28000

46000

100

1998-01-01

Scott

29000

75000

100

1998-02-01

Antonia

22000

97000

100

1998-03-12

Adam

25000

122000

100

1998-12-01

Amy

18000

140000

200

1998-01-01

Jeff

18000

18000

200

1998-01-20

Tim

29000

47000

200

1998-02-01

Jim

22000

69000

200

1999-01-10

Tom

28000

97000

300

1998-03-12

Sandy

55000

55000

300

1998-12-01

Lisa

38000

93000

300

1999-01-10

Peter

48000

141000

例:移動平均の計算

このクエリでは、連続する 3 か月間の売上の移動平均を計算します。使用する ウィンドウ・フレームは 3 つのローから成り、先行する 2 つのローと現在の ローが含まれます。このウィンドウは、パーティションの最初から最後までス ライドしていきます。

SELECT prod_id, month_num, sales, AVG(sales) OVER (PARTITION BY prod_id ORDER BY month_num ROWS BETWEEN 2 PRECEDING AND CURRENT ROW)

FROM sale WHERE rep_id = 1 ORDER BY prod_id, month_num;

このクエリの結果セットを次に示します。

prod_id

month_num

sales

avg(sales)

-------

---------

------

----------

10

1

100

100.00

10

2

120

110.00

10

3

100

106.66

10

4

130

116.66

10

5

120

116.66

92

Sybase IQ

Page 108
Image 108
Sybase 12.7 例:累積和の計算, 例:移動平均の計算, Sybase IQ, その他の Olap の例, dept_id, start_date, name, sumsalary, prod_id, month_num