次のような単純化された表がありxx
ます。
rdate date
rtime time
rid integer
rsub integer
rval integer
primary key on (rdate,rtime,rid,rsub)
そして、値の合計(すべてのIDにわたる)の平均(すべての時間にわたる)を取得したいと考えています。
サンプル テーブルとして、次のようなものがあります (読みやすくするために、連続した同一の値は空白にしています)。
rdate rtime rid rsub rval
-------------------------------------
2010-01-01 00.00.00 1 1 10
2 20
2 1 30
2 40
01.00.00 1 1 50
2 60
2 1 70
2 80
02.00.00 1 1 90
2 100
2010-01-02 00.00.00 1 1 999
私が望む金額を得ることができます:
select rdate,rtime,rid, sum(rval) as rsum
from xx
where rdate = '2010-01-01'
group by rdate,rtime,rid
それは私に与える:
rdate rtime rid rsum
-------------------------------
2010-01-01 00.00.00 1 30 (10+20)
2 70 (30+40)
01.00.00 1 110 (50+60)
2 150 (70+80)
02.00.00 1 190 (90+100)
予想通り。
今私が欲しいのは、時間ディメンション全体でこれらの値を平均するクエリであり、次のようになります。
rdate rtime ravgsum
----------------------------
2010-01-01 00.00.00 50 ((30+70)/2)
01.00.00 130 ((110+150)/2)
02.00.00 190 ((190)/1)
DB2 for z/OS を使用していますが、可能であれば標準 SQL を使用したいと考えています。