タイムゾーン de 自動調整 #2 Tweet
タイムゾーン de 自動調整の続きです。 前回階層問合せを利用して実現した方法を集計関数cubeで置き換えた例。
クライアントのタイムゾーン(SESSIONTIMEZONE)を確認。(タイムゾーンはJST)。
SCOTT> select sessiontimezone from dual;
SESSIONTIMEZONE
-----------------------------------------------------------------
+09:00
SCOTT> l
1 select
2 cal."date",
3 nvl(logs."activity",0) as "activity"
4 from
5 (
6 select
7 "date",
8 count(ts_ltz) as "activity"
9 from
10 (
11 select
12 to_char(ts_ltz, 'YYYY/MM/DD') as "date",
13 ts_ltz
14 from
15 ts_test
16 )
17 group by
18 "date"
19 ) logs
20 right outer join
21 (
22 select
23 to_char(
24 trunc(sysdate) - (rownum - 1),
25 'YYYY/MM/DD'
26 ) as "date"
27 from
28 (
29 select 1
30 from
31 dual
32 group by
33 cube (1,1,1,1,1)
34 )
35 where
36 rownum <= 27
37 ) cal
38 on logs."date" = cal."date"
39 order by
40* cal."date"
SCOTT> /
date activity
---------- ----------
2008/03/02 2
2008/03/03 2
2008/03/04 2
2008/03/05 2
2008/03/06 2
2008/03/07 2
2008/03/08 2
2008/03/09 2
2008/03/10 2
2008/03/11 2
2008/03/12 2
2008/03/13 2
2008/03/14 2
2008/03/15 2
2008/03/16 2
2008/03/17 2
2008/03/18 2
2008/03/19 2
2008/03/20 2
2008/03/21 2
2008/03/22 2
2008/03/23 2
2008/03/24 0
2008/03/25 2
2008/03/26 2
2008/03/27 3
2008/03/28 0
27行が選択されました。
SCOTT>
<
クライアントのタイムゾーンをUTCへ変更
SCOTT> alter session set time_zone='UTC';
セッションが変更されました。
SCOTT>
SCOTT> l
1 select
2 cal."date",
3 nvl(logs."activity",0) as "activity"
4 from
5 (
6 select
7 "date",
8 count(ts_ltz) as "activity"
9 from
10 (
11 select
12 to_char(ts_ltz, 'YYYY/MM/DD') as "date",
13 ts_ltz
14 from
15 ts_test
16 )
17 group by
18 "date"
19 ) logs
20 right outer join
21 (
22 select
23 to_char(
24 trunc(sysdate) - (rownum - 1),
25 'YYYY/MM/DD'
26 ) as "date"
27 from
28 (
29 select 1
30 from
31 dual
32 group by
33 cube (1,1,1,1,1)
34 )
35 where
36 rownum <= 27
37 ) cal
38 on logs."date" = cal."date"
39 order by
40* cal."date"
SCOTT> /
date activity
---------- ----------
2008/03/02 2
2008/03/03 2
2008/03/04 2
2008/03/05 2
2008/03/06 2
2008/03/07 2
2008/03/08 2
2008/03/09 2
2008/03/10 2
2008/03/11 2
2008/03/12 2
2008/03/13 2
2008/03/14 2
2008/03/15 2
2008/03/16 2
2008/03/17 2
2008/03/18 2
2008/03/19 2
2008/03/20 2
2008/03/21 2
2008/03/22 2
2008/03/23 1
2008/03/24 1
2008/03/25 2
2008/03/26 2
2008/03/27 2
2008/03/28 0
27行が選択されました。
SCOTT>
階層問合せほどの柔軟性はないのですがcubeでも同様のことができるんですよ。
| 固定リンク | 0
コメント