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

質問編集履歴

5

解決方法

2020/11/29 14:14

投稿

mochiwo
mochiwo

スコア8

title CHANGED
File without changes
body CHANGED
@@ -36,4 +36,27 @@
36
36
  VALUES ('B', '31-Mar-2015 12:00:00 AM')
37
37
  SELECT * FROM dual
38
38
  ;
39
- ```
39
+ ```
40
+
41
+
42
+ <11/29 追記2>
43
+ @gpsoft様のクエリを参考にさせていただきました。
44
+
45
+ ```SQL
46
+ SELECT A.ID
47
+ , A.EVENT_DATE
48
+ , COUNT(B.ID) AS FREQ_PAST_1YEAR
49
+ FROM Tbl A
50
+ LEFT JOIN Tbl B
51
+ ON A.ID = B.ID
52
+ AND B.EVENT_DATE < A.EVENT_DATE
53
+ AND B.EVENT_DATE > ADD_MONTHS(A.EVENT_DATE, -12)
54
+ GROUP BY A.ID, A.EVENT_DATE
55
+ ORDER BY A.ID, A.EVENT_DATE
56
+ ;
57
+ ```
58
+
59
+ @gpsoft様、@sazi様、@Orlofsky様
60
+ 初心者にもかかわらずご丁寧に教えていただき、大変勉強になりました。
61
+ 今後質問させていただく時は、Markdownやタグ付けの徹底など留意させていただきます。
62
+ どうぞよろしくお願い申し上げます。

4

SQL server→ Oracleへ変更

2020/11/29 14:13

投稿

mochiwo
mochiwo

スコア8

title CHANGED
File without changes
body CHANGED
File without changes

3

DATEに修正

2020/11/29 13:43

投稿

mochiwo
mochiwo

スコア8

title CHANGED
File without changes
body CHANGED
@@ -15,25 +15,25 @@
15
15
  <2020/11/29追記>
16
16
  サンプルデータは以下で作成いたしました。
17
17
  ```SQL
18
- CREATE TABLE event
18
+ CREATE TABLE TBL
19
- ("ID" varchar2(1), "event_date" int)
19
+ ("ID" varchar2(1), "EVENT_DATE" timestamp)
20
20
  ;
21
21
 
22
- INSERT ALL
22
+ INSERT ALL
23
- INTO event ("ID", "event_date")
23
+ INTO TBL ("ID", "EVENT_DATE")
24
- VALUES ('A', 20150101)
24
+ VALUES ('A', '01-Jan-2015 12:00:00 AM')
25
- INTO event ("ID", "event_date")
25
+ INTO TBL ("ID", "EVENT_DATE")
26
- VALUES ('A', 20150203)
26
+ VALUES ('A', '03-Feb-2015 12:00:00 AM')
27
- INTO event ("ID", "event_date")
27
+ INTO TBL ("ID", "EVENT_DATE")
28
- VALUES ('A', 20150803)
28
+ VALUES ('A', '03-Aug-2015 12:00:00 AM')
29
- INTO event ("ID", "event_date")
29
+ INTO TBL ("ID", "EVENT_DATE")
30
- VALUES ('A', 20160201)
30
+ VALUES ('A', '01-Feb-2016 12:00:00 AM')
31
- INTO event ("ID", "event_date")
31
+ INTO TBL ("ID", "EVENT_DATE")
32
- VALUES ('B', 20130401)
32
+ VALUES ('B', '01-Apr-2013 12:00:00 AM')
33
- INTO event ("ID", "event_date")
33
+ INTO TBL ("ID", "EVENT_DATE")
34
- VALUES ('B', 20140501)
34
+ VALUES ('B', '01-May-2014 12:00:00 AM')
35
- INTO event ("ID", "event_date")
35
+ INTO TBL ("ID", "EVENT_DATE")
36
- VALUES ('B', 20150331)
36
+ VALUES ('B', '31-Mar-2015 12:00:00 AM')
37
37
  SELECT * FROM dual
38
38
  ;
39
39
  ```

2

markdown

2020/11/29 13:33

投稿

mochiwo
mochiwo

スコア8

title CHANGED
File without changes
body CHANGED
@@ -14,6 +14,7 @@
14
14
 
15
15
  <2020/11/29追記>
16
16
  サンプルデータは以下で作成いたしました。
17
+ ```SQL
17
18
  CREATE TABLE event
18
19
  ("ID" varchar2(1), "event_date" int)
19
20
  ;
@@ -34,4 +35,5 @@
34
35
  INTO event ("ID", "event_date")
35
36
  VALUES ('B', 20150331)
36
37
  SELECT * FROM dual
37
- ;
38
+ ;
39
+ ```

1

サンプルデータのコード

2020/11/29 13:13

投稿

mochiwo
mochiwo

スコア8

title CHANGED
File without changes
body CHANGED
@@ -9,4 +9,29 @@
9
9
  2015年8月3日…1年振り返ると、2015年1月1日、2015年2月3日の2回
10
10
  2016年2月1日…1年振り返ると、2015年2月3日、2015年8月3日の2回
11
11
  となっています。
12
- (うるう年の処理が困難な場合は、365日と定義しても差し支えないと考えています)
12
+ (うるう年の処理が困難な場合は、365日と定義しても差し支えないと考えています)
13
+
14
+
15
+ <2020/11/29追記>
16
+ サンプルデータは以下で作成いたしました。
17
+ CREATE TABLE event
18
+ ("ID" varchar2(1), "event_date" int)
19
+ ;
20
+
21
+ INSERT ALL
22
+ INTO event ("ID", "event_date")
23
+ VALUES ('A', 20150101)
24
+ INTO event ("ID", "event_date")
25
+ VALUES ('A', 20150203)
26
+ INTO event ("ID", "event_date")
27
+ VALUES ('A', 20150803)
28
+ INTO event ("ID", "event_date")
29
+ VALUES ('A', 20160201)
30
+ INTO event ("ID", "event_date")
31
+ VALUES ('B', 20130401)
32
+ INTO event ("ID", "event_date")
33
+ VALUES ('B', 20140501)
34
+ INTO event ("ID", "event_date")
35
+ VALUES ('B', 20150331)
36
+ SELECT * FROM dual
37
+ ;