質問するログイン新規登録

回答編集履歴

5

推敲

2021/04/09 05:05

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -45,4 +45,4 @@
45
45
  ```
46
46
  > 元の文字列は「2021040112000012345678」のような22桁の文字列です。
47
47
 
48
- という事なので、桁数的に不明な部分がありますので、20桁が’YYYYMMDDHH24MISSUS’だとして、必要な桁のみをsubstrでピックアップするする事にしています。
48
+ という事なので、桁数的に不明な部分がありますので、20桁が’YYYYMMDDHH24MISSUS’だとして、必要な桁のみをsubstrでピックアップする事にしています。

4

推敲

2021/04/09 05:05

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -15,7 +15,7 @@
15
15
 
16
16
  取り敢えず条件部分はわざとコメントにしていますので、適宜利用して下さい。
17
17
  ```SQL
18
- select active_date, active_day, active_timerange, count(*) as cnt
18
+ select active_date, active_day, active_timezone, count(*) as cnt
19
19
  from (
20
20
  select *
21
21
  , to_date(substr(active, 1, 8), 'YYYYMMDDHH') AS active_date -- 日付
@@ -26,7 +26,7 @@
26
26
  when 1 then '06-12'
27
27
  when 2 then '12-18'
28
28
  when 3 then '18-24'
29
- end AS active_timerange -- 時間帯
29
+ end AS active_timezone -- 時間帯
30
30
  , to_timestamp(substr(active, 1, 20), 'YYYYMMDDHH24MISSUS') AS active_timestamp -- タイムスタンプ
31
31
  from (values
32
32
  (1,'2021040112000000000000')
@@ -40,8 +40,8 @@
40
40
  and active_day in ('月','木','土')
41
41
  and active_time between '12:00:00' AND '17:59:59'
42
42
  */
43
- group by active_date, active_day, active_timerange
43
+ group by active_date, active_day, active_timezone
44
- order by active_date, active_timerange
44
+ order by active_date, active_timezone
45
45
  ```
46
46
  > 元の文字列は「2021040112000012345678」のような22桁の文字列です。
47
47
 

3

推敲

2021/04/09 02:43

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -41,6 +41,7 @@
41
41
  and active_time between '12:00:00' AND '17:59:59'
42
42
  */
43
43
  group by active_date, active_day, active_timerange
44
+ order by active_date, active_timerange
44
45
  ```
45
46
  > 元の文字列は「2021040112000012345678」のような22桁の文字列です。
46
47
 

2

推敲

2021/04/09 01:18

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -22,8 +22,8 @@
22
22
  , to_char(to_date(substr(active, 1, 8), 'YYYYMMDDHH'), 'TMDy') AS active_day -- 曜日
23
23
  , to_char(substr(active, 9, 6)::integer,'FM00:00:00')::time AS active_time -- 時間
24
24
  , case substr(active, 9, 2)::integer / 6
25
- when 0 then '0-6'
25
+ when 0 then '00-06'
26
- when 1 then '6-12'
26
+ when 1 then '06-12'
27
27
  when 2 then '12-18'
28
28
  when 3 then '18-24'
29
29
  end AS active_timerange -- 時間帯

1

推敲

2021/04/09 01:17

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -35,9 +35,11 @@
35
35
  ,(4,'2021040516000000000000')
36
36
  ) as hoge_db(no, active)
37
37
  ) edit
38
+ /*
38
39
  where active_date between '2021/04/01' and '2021/04/05'
39
40
  and active_day in ('月','木','土')
40
41
  and active_time between '12:00:00' AND '17:59:59'
42
+ */
41
43
  group by active_date, active_day, active_timerange
42
44
  ```
43
45
  > 元の文字列は「2021040112000012345678」のような22桁の文字列です。