回答編集履歴
13
推敲
test
CHANGED
@@ -58,7 +58,7 @@
|
|
58
58
|
|
59
59
|
, point_agg as (--ポイント履歴属性集計
|
60
60
|
|
61
|
-
select shisaku_flg, demogra_flg, count(distinct kihon_id) as pat
|
61
|
+
select shisaku_flg, demogra_flg, count(distinct kihon_id) as pattern_count
|
62
62
|
|
63
63
|
from point_attribute
|
64
64
|
|
@@ -70,7 +70,7 @@
|
|
70
70
|
|
71
71
|
-- パターン別集計表(組合せ表とポイント履歴属性集計を結合し件数を取得)
|
72
72
|
|
73
|
-
select ptn.*, coalesce(pntagg.pat
|
73
|
+
select ptn.*, coalesce(pntagg.pattern_count,0)
|
74
74
|
|
75
75
|
from pattern ptn left join point_agg pntagg
|
76
76
|
|
12
修正
test
CHANGED
@@ -92,8 +92,6 @@
|
|
92
92
|
|
93
93
|
--
|
94
94
|
|
95
|
-
「キャンペーン期間:1/26~2/9」を条件に含めると
|
95
|
+
「キャンペーン期間:1/26~2/9」を条件に含めると、求めたい結果と異なるので含めていません。
|
96
|
-
|
97
|
-
求めたい結果と異なるので、含めていません。
|
98
96
|
|
99
97
|
必要なら、point_attribute内で条件を直接追加すれば確認できます。
|
11
修正
test
CHANGED
@@ -68,7 +68,7 @@
|
|
68
68
|
|
69
69
|
)
|
70
70
|
|
71
|
-
-- パターン別集計表(組合せ表とポイント属性
|
71
|
+
-- パターン別集計表(組合せ表とポイント履歴属性集計を結合し件数を取得)
|
72
72
|
|
73
73
|
select ptn.*, coalesce(pntagg.patarn_count,0)
|
74
74
|
|
10
追記
test
CHANGED
@@ -12,13 +12,13 @@
|
|
12
12
|
|
13
13
|
with
|
14
14
|
|
15
|
-
param as (
|
15
|
+
param as (-- パラメータ
|
16
16
|
|
17
17
|
select '2018-02-07':: date apply_date_limit ,'2018-01-26':: date campaign_Start,'2018-02-09':: date campaign_End
|
18
18
|
|
19
19
|
)
|
20
20
|
|
21
|
-
, pattern as (
|
21
|
+
, pattern as (--組合せ表
|
22
22
|
|
23
23
|
select shisaku_flg, demogra_flg1 || demogra_flg2 as demogra_flg
|
24
24
|
|
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
)
|
32
32
|
|
33
|
-
, point_attribute as (
|
33
|
+
, point_attribute as (--ポイント履歴属性追加
|
34
34
|
|
35
35
|
select kihon_id
|
36
36
|
|
@@ -56,7 +56,7 @@
|
|
56
56
|
|
57
57
|
)
|
58
58
|
|
59
|
-
, point_agg as (
|
59
|
+
, point_agg as (--ポイント履歴属性集計
|
60
60
|
|
61
61
|
select shisaku_flg, demogra_flg, count(distinct kihon_id) as patarn_count
|
62
62
|
|
@@ -67,6 +67,8 @@
|
|
67
67
|
order by shisaku_flg, demogra_flg
|
68
68
|
|
69
69
|
)
|
70
|
+
|
71
|
+
-- パターン別集計表(組合せ表とポイント属性履歴を結合し件数を取得)
|
70
72
|
|
71
73
|
select ptn.*, coalesce(pntagg.patarn_count,0)
|
72
74
|
|
9
修正
test
CHANGED
@@ -12,7 +12,13 @@
|
|
12
12
|
|
13
13
|
with
|
14
14
|
|
15
|
+
param as (
|
16
|
+
|
17
|
+
select '2018-02-07':: date apply_date_limit ,'2018-01-26':: date campaign_Start,'2018-02-09':: date campaign_End
|
18
|
+
|
19
|
+
)
|
20
|
+
|
15
|
-
|
21
|
+
, pattern as (
|
16
22
|
|
17
23
|
select shisaku_flg, demogra_flg1 || demogra_flg2 as demogra_flg
|
18
24
|
|
@@ -30,7 +36,7 @@
|
|
30
36
|
|
31
37
|
, case when exists(
|
32
38
|
|
33
|
-
select 1 from campaign where kihon_id=pnt.kihon_id and apply_date=pnt.p_date
|
39
|
+
select 1 from campaign where apply_date < param.apply_date_limit and kihon_id=pnt.kihon_id and apply_date=pnt.p_date
|
34
40
|
|
35
41
|
)
|
36
42
|
|
@@ -40,13 +46,13 @@
|
|
40
46
|
|
41
47
|
case when old between 20 and 34 then '1'
|
42
48
|
|
43
|
-
when old between 35 and 49 then '2'
|
49
|
+
when old between 35 and 49 then '2'
|
44
50
|
|
45
|
-
when old >= 50 then '3'
|
51
|
+
when old >= 50 then '3'
|
46
52
|
|
47
53
|
end as demogra_flg
|
48
54
|
|
49
|
-
from point_rireki2 pnt
|
55
|
+
from param cross join point_rireki2 pnt
|
50
56
|
|
51
57
|
)
|
52
58
|
|
@@ -70,7 +76,7 @@
|
|
70
76
|
|
71
77
|
and ptn.demogra_flg=pntagg.demogra_flg
|
72
78
|
|
73
|
-
order by shisaku_flg,demogra_flg
|
79
|
+
order by shisaku_flg, demogra_flg
|
74
80
|
|
75
81
|
;
|
76
82
|
|
@@ -84,7 +90,7 @@
|
|
84
90
|
|
85
91
|
--
|
86
92
|
|
87
|
-
「
|
93
|
+
「キャンペーン期間:1/26~2/9」を条件に含めると
|
88
94
|
|
89
95
|
求めたい結果と異なるので、含めていません。
|
90
96
|
|
8
追記
test
CHANGED
@@ -87,3 +87,5 @@
|
|
87
87
|
「特定応募日(2/6)以前までの期間における」や「キャンペーン期間:1/26~2/9」を条件に含めると
|
88
88
|
|
89
89
|
求めたい結果と異なるので、含めていません。
|
90
|
+
|
91
|
+
必要なら、point_attribute内で条件を直接追加すれば確認できます。
|
7
追記
test
CHANGED
@@ -77,3 +77,13 @@
|
|
77
77
|
```
|
78
78
|
|
79
79
|
※テストデータではgenderに定義に無い'3'がありますけど、それは組合せ表により除外されています。
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
追記
|
84
|
+
|
85
|
+
--
|
86
|
+
|
87
|
+
「特定応募日(2/6)以前までの期間における」や「キャンペーン期間:1/26~2/9」を条件に含めると
|
88
|
+
|
89
|
+
求めたい結果と異なるので、含めていません。
|
6
推敲
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
with
|
14
14
|
|
15
|
-
pat
|
15
|
+
pattern as (
|
16
16
|
|
17
17
|
select shisaku_flg, demogra_flg1 || demogra_flg2 as demogra_flg
|
18
18
|
|
@@ -64,7 +64,7 @@
|
|
64
64
|
|
65
65
|
select ptn.*, coalesce(pntagg.patarn_count,0)
|
66
66
|
|
67
|
-
from pat
|
67
|
+
from pattern ptn left join point_agg pntagg
|
68
68
|
|
69
69
|
on ptn.shisaku_flg=pntagg.shisaku_flg
|
70
70
|
|
5
修正
test
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
|
25
25
|
)
|
26
26
|
|
27
|
-
, point_
|
27
|
+
, point_attribute as (
|
28
28
|
|
29
29
|
select kihon_id
|
30
30
|
|
@@ -54,7 +54,7 @@
|
|
54
54
|
|
55
55
|
select shisaku_flg, demogra_flg, count(distinct kihon_id) as patarn_count
|
56
56
|
|
57
|
-
from point_
|
57
|
+
from point_attribute
|
58
58
|
|
59
59
|
group by shisaku_flg, demogra_flg
|
60
60
|
|
4
修正
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
with
|
14
14
|
|
15
|
-
pat
|
15
|
+
patarn as (
|
16
16
|
|
17
17
|
select shisaku_flg, demogra_flg1 || demogra_flg2 as demogra_flg
|
18
18
|
|
@@ -24,35 +24,37 @@
|
|
24
24
|
|
25
25
|
)
|
26
26
|
|
27
|
+
, point_edit as (
|
28
|
+
|
29
|
+
select kihon_id
|
30
|
+
|
31
|
+
, case when exists(
|
32
|
+
|
33
|
+
select 1 from campaign where kihon_id=pnt.kihon_id and apply_date=pnt.p_date
|
34
|
+
|
35
|
+
)
|
36
|
+
|
37
|
+
then 'キャンペーンあり' else 'キャンペーンなし' end as shisaku_flg
|
38
|
+
|
39
|
+
, case gender when 1 then 'M' when 2 then 'F' end ||
|
40
|
+
|
41
|
+
case when old between 20 and 34 then '1'
|
42
|
+
|
43
|
+
when old between 35 and 49 then '2'
|
44
|
+
|
45
|
+
when old >= 50 then '3'
|
46
|
+
|
47
|
+
end as demogra_flg
|
48
|
+
|
49
|
+
from point_rireki2 pnt
|
50
|
+
|
51
|
+
)
|
52
|
+
|
27
53
|
, point_agg as (
|
28
54
|
|
29
55
|
select shisaku_flg, demogra_flg, count(distinct kihon_id) as patarn_count
|
30
56
|
|
31
|
-
from (
|
32
|
-
|
33
|
-
select *
|
34
|
-
|
35
|
-
, case when exists(
|
36
|
-
|
37
|
-
select 1 from campaign where kihon_id=pnt.kihon_id and apply_date=pnt.p_date
|
38
|
-
|
39
|
-
)
|
40
|
-
|
41
|
-
then 'キャンペーンあり' else 'キャンペーンなし' end as shisaku_flg
|
42
|
-
|
43
|
-
, case gender when 1 then 'M' when 2 then 'F' end ||
|
44
|
-
|
45
|
-
case when old between 20 and 34 then '1'
|
46
|
-
|
47
|
-
when old between 35 and 49 then '2'
|
48
|
-
|
49
|
-
when old >= 50 then '3'
|
50
|
-
|
51
|
-
end as demogra_flg
|
52
|
-
|
53
|
-
|
57
|
+
from point_edit
|
54
|
-
|
55
|
-
) step1
|
56
58
|
|
57
59
|
group by shisaku_flg, demogra_flg
|
58
60
|
|
@@ -62,13 +64,13 @@
|
|
62
64
|
|
63
65
|
select ptn.*, coalesce(pntagg.patarn_count,0)
|
64
66
|
|
65
|
-
from pat
|
67
|
+
from patarn ptn left join point_agg pntagg
|
66
68
|
|
67
69
|
on ptn.shisaku_flg=pntagg.shisaku_flg
|
68
70
|
|
69
71
|
and ptn.demogra_flg=pntagg.demogra_flg
|
70
72
|
|
71
|
-
order by shisaku_flg,demogra_flg
|
73
|
+
order by shisaku_flg,demogra_flg
|
72
74
|
|
73
75
|
;
|
74
76
|
|
3
推敲
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
先ず【検討中のフラグの仮案】ですが、case文中で完結しているので、相関問い合わせとなっていません。
|
2
2
|
|
3
|
-
次に、求める結果では0件も表示するのですから、ポイント履歴に求めても無いものは抽出されません
|
3
|
+
次に、求める結果では0件も表示するのですから、ポイント履歴に求めても無いものは抽出されませんので、基準となるものが必要です。
|
4
4
|
|
5
5
|
|
6
6
|
|
2
推敲
test
CHANGED
@@ -74,4 +74,4 @@
|
|
74
74
|
|
75
75
|
```
|
76
76
|
|
77
|
-
※テストデータではgenderに定義に無い'3'がありますけど、それは
|
77
|
+
※テストデータではgenderに定義に無い'3'がありますけど、それは組合せ表により除外されています。
|
1
追記
test
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
先ず【検討中のフラグの仮案】ですが、case文中で完結しているので、相関問い合わせとなっていません。
|
2
2
|
|
3
|
-
次に、求める結果では0件も表示するのですから、ポイント履歴に求めても無いものは抽出されませんから、
|
3
|
+
次に、求める結果では0件も表示するのですから、ポイント履歴に求めても無いものは抽出されませんから、基準となるものが必要です。
|
4
|
-
|
5
|
-
基準となるものが必要です。
|
6
4
|
|
7
5
|
|
8
6
|
|
@@ -75,3 +73,5 @@
|
|
75
73
|
;
|
76
74
|
|
77
75
|
```
|
76
|
+
|
77
|
+
※テストデータではgenderに定義に無い'3'がありますけど、それは除外組合せ表により除外されています。
|