回答編集履歴

4

timestamp型への文字列切り出しを追加

2021/04/09 01:24

投稿

退会済みユーザー
test CHANGED
@@ -60,11 +60,11 @@
60
60
 
61
61
  select
62
62
 
63
- to_timestamp(t.active_time, 'YYYYMMDDHH24MI') as "タイムスタンプ",
63
+ to_timestamp(substring(t.active_time from 1 to 14), 'YYYYMMDDHH24MISS') as "タイムスタンプ",
64
64
 
65
- extract(dow from to_timestamp(t.active_time, 'YYYYMMDDHH24MI')) as "dow(0が日曜日)",
65
+ extract(dow from to_timestamp(substring(t.active_time from 1 to 14), 'YYYYMMDDHH24MISS')) as "dow(0が日曜日)",
66
66
 
67
- extract(hour from to_timestamp(t.active_time, 'YYYYMMDDHH24MI')) as "hour"
67
+ extract(hour from to_timestamp(substring(t.active_time from 1 to 14), 'YYYYMMDDHH24MISS')) as "hour"
68
68
 
69
69
  from (
70
70
 

3

見直し

2021/04/09 01:24

投稿

退会済みユーザー
test CHANGED
@@ -60,7 +60,11 @@
60
60
 
61
61
  select
62
62
 
63
- to_timestamp(t.active_time, 'YYYYMMDDHH24MI')
63
+ to_timestamp(t.active_time, 'YYYYMMDDHH24MI') as "タイムスタンプ",
64
+
65
+ extract(dow from to_timestamp(t.active_time, 'YYYYMMDDHH24MI')) as "dow(0が日曜日)",
66
+
67
+ extract(hour from to_timestamp(t.active_time, 'YYYYMMDDHH24MI')) as "hour"
64
68
 
65
69
  from (
66
70
 
@@ -68,6 +72,8 @@
68
72
 
69
73
  ) as t
70
74
 
75
+
76
+
71
77
  ```
72
78
 
73
79
 

2

見直し

2021/04/08 09:14

投稿

退会済みユーザー
test CHANGED
@@ -25,3 +25,51 @@
25
25
  データ投入時点でpl/pgSQLを駆使して検索用に加工したものが
26
26
 
27
27
  自動反映されるようにするなどの工夫もありかもしれない。
28
+
29
+
30
+
31
+ ```sql
32
+
33
+ select
34
+
35
+ substring(t.active_time from 1 for 4) as yyyy,
36
+
37
+ substring(t.active_time from 5 for 2) as mm,
38
+
39
+ substring(t.active_time from 7 for 2) as dd,
40
+
41
+ substring(t.active_time from 9 for 2) as hh,
42
+
43
+ substring(t.active_time from 11 for 2) as nn
44
+
45
+ from (
46
+
47
+ select '202104011200' as active_time
48
+
49
+ ) as t
50
+
51
+ ```
52
+
53
+
54
+
55
+ これで年月日時分が分離できるし、
56
+
57
+
58
+
59
+ ```sql
60
+
61
+ select
62
+
63
+ to_timestamp(t.active_time, 'YYYYMMDDHH24MI')
64
+
65
+ from (
66
+
67
+ select '202104011200' as active_time
68
+
69
+ ) as t
70
+
71
+ ```
72
+
73
+
74
+
75
+ これでtimestamp型にできるからここから加工すればいいんじゃないかと。

1

見直し

2021/04/08 09:08

投稿

退会済みユーザー
test CHANGED
@@ -1,8 +1,12 @@
1
+ 期間や曜日や時間での絞り込みクエリーがよくある操作なのだとしたら、
2
+
1
- いちいちvarcharとかtextとかから関数かまして加工した上での絞り込みって遅そう。
3
+ いちいちvarcharとかtextとかから関数かまして加工した上での絞り込みって
4
+
5
+ レコード件数次第ではメモリに上がりきらなくなって極端に遅くなる場合も考えられそう。
2
6
 
3
7
 
4
8
 
5
- 式に対するインデックスを組み合わせるくらいなら
9
+ 式に対するインデックスを組み合わせるのはもちろんだけど
6
10
 
7
11
 
8
12
 
@@ -15,3 +19,9 @@
15
19
 
16
20
 
17
21
  って工夫をしたらいいと思った。
22
+
23
+ そういうviewを予め組んでもいいだろうし、
24
+
25
+ データ投入時点でpl/pgSQLを駆使して検索用に加工したものが
26
+
27
+ 自動反映されるようにするなどの工夫もありかもしれない。