「PARTITION BY」について
961952Sep 13 2012 — edited Sep 13 2012はじめまして。
いまORACLE10gを使用している者です。
「PARTITION BY」について質問したいことがあります。
いまたとえば『売上テーブル』があって、
「売上年月日」、「売上金額」というカラムを持っているとします。
売上年月日 売上金額
---------- ------------
2012/07/10 500,000
2012/07/20 3,000,000
2012/07/30 1,000,000
2012/08/10 2,500,000
2012/08/20 5,000,000
2012/08/30 8,000,000
2012/09/10 300,000
2012/09/20 1,200,000
2012/09/30 3,000,000
とあるとして、
このテーブルからつぎのような結果を1行(!)で取得したいのです。
売上年月_7月 売上年月_8月 売上年月_9月
------------ ------------ ------------
4,500,000 15,500,000 4,500,000
そこで下記のように試みたのですが「PARTITION BY」の箇所で文法エラーになってしまいます。
select to_date(売上年月, 'yyyy/mm'),
sum(売上金額) over (partition by to_date(売上年月, 'yyyy/mm') group by to_date(売上年月, 'yyyy/mm')
range between to_date('2012/07', 'yyyy/mm') preceding and to_date('2012/07', 'yyyy/mm') following) 売上金額計_7月
sum(売上金額) over (partition by to_date(売上年月, 'yyyy/mm') group by to_date(売上年月, 'yyyy/mm')
range between to_date('2012/08', 'yyyy/mm') preceding and to_date('2012/08', 'yyyy/mm') following) 売上金額計_8月
sum(売上金額) over (partition by to_date(売上年月, 'yyyy/mm') group by to_date(売上年月, 'yyyy/mm')
range between to_date('2012/09', 'yyyy/mm') preceding and to_date('2012/09', 'yyyy/mm') following) 売上金額計_9月
from 売上
;
上記の結果をSQLで(PLSQLを使わずに)1行で取れる方法を教えてください。
宜しくお願いします。