質問編集履歴
5
解決方法
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へ変更
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|
3
DATEに修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -15,25 +15,25 @@
|
|
15
15
|
<2020/11/29追記>
|
16
16
|
サンプルデータは以下で作成いたしました。
|
17
17
|
```SQL
|
18
|
-
CREATE TABLE
|
18
|
+
CREATE TABLE TBL
|
19
|
-
("ID" varchar2(1), "
|
19
|
+
("ID" varchar2(1), "EVENT_DATE" timestamp)
|
20
20
|
;
|
21
21
|
|
22
|
-
INSERT ALL
|
22
|
+
INSERT ALL
|
23
|
-
INTO
|
23
|
+
INTO TBL ("ID", "EVENT_DATE")
|
24
|
-
VALUES ('A',
|
24
|
+
VALUES ('A', '01-Jan-2015 12:00:00 AM')
|
25
|
-
INTO
|
25
|
+
INTO TBL ("ID", "EVENT_DATE")
|
26
|
-
VALUES ('A',
|
26
|
+
VALUES ('A', '03-Feb-2015 12:00:00 AM')
|
27
|
-
INTO
|
27
|
+
INTO TBL ("ID", "EVENT_DATE")
|
28
|
-
VALUES ('A',
|
28
|
+
VALUES ('A', '03-Aug-2015 12:00:00 AM')
|
29
|
-
INTO
|
29
|
+
INTO TBL ("ID", "EVENT_DATE")
|
30
|
-
VALUES ('A',
|
30
|
+
VALUES ('A', '01-Feb-2016 12:00:00 AM')
|
31
|
-
INTO
|
31
|
+
INTO TBL ("ID", "EVENT_DATE")
|
32
|
-
VALUES ('B',
|
32
|
+
VALUES ('B', '01-Apr-2013 12:00:00 AM')
|
33
|
-
INTO
|
33
|
+
INTO TBL ("ID", "EVENT_DATE")
|
34
|
-
VALUES ('B',
|
34
|
+
VALUES ('B', '01-May-2014 12:00:00 AM')
|
35
|
-
INTO
|
35
|
+
INTO TBL ("ID", "EVENT_DATE")
|
36
|
-
VALUES ('B',
|
36
|
+
VALUES ('B', '31-Mar-2015 12:00:00 AM')
|
37
37
|
SELECT * FROM dual
|
38
38
|
;
|
39
39
|
```
|
2
markdown
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
サンプルデータのコード
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
|
+
;
|