4

OLAP の使用

10

6

110

120.00

 

20

1

20

20.00

 

20

2

30

25.00

 

20

3

25

25.00

 

20

4

30

28.33

 

20

5

31

28.66

 

20

6

20

27.00

 

30

1

10

10.00

 

30

2

11

10.50

 

30

3

12

11.00

 

30

4

1

8.00

 

例:ORDER BY の結果

この例では、クエリの最上位の ORDER BY 句がウィンドウ関数の最終的な結 果に適用されます。ウィンドウ句に指定されている ORDER BY は、ウィンド ウ関数の入力データに適用されます。

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 desc, month_num;

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

prod_id

month_num

sales

avg(sales)

-------

---------

-----

----------

30

1

10

10.00

30

2

11

10.50

30

3

12

11.00

30

4

1

8.00

20

1

20

20.00

20

2

30

25.00

20

3

25

25.00

20

4

30

28.33

20

5

31

28.66

20

6

20

27.00

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

10

6

110

120.00

パフォーマンス&チューニング・ガイド

93

Page 109
Image 109
Sybase 12.7 manual 例:Order By の結果, パフォーマンス&チューニング・ガイド, 第 4 章, prod_id, month_num, avgsales