回答編集履歴

3

チョウセイ

2019/06/11 07:20

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -54,13 +54,15 @@
54
54
 
55
55
  (10004,'2019-07-10','田中','GGGGGGG'),
56
56
 
57
+ (10005,'2019-07-10','吉田','HHHHサンプル'),
58
+
57
59
  (10011,'2019-05-11','鈴木','XXXXXX'),
58
60
 
59
61
  (10012,'2019-06-05','佐藤','YYYYYサンプル');
60
62
 
61
63
  ```
62
64
 
63
- - 初回にサンプルを買
65
+ - 初回にサンプルを買った
64
66
 
65
67
  ```SQL
66
68
 
@@ -89,3 +91,43 @@
89
91
  and flg>0
90
92
 
91
93
  ```
94
+
95
+ - 初回に現品を買った人
96
+
97
+ ```SQL
98
+
99
+ select * from (
100
+
101
+ select 売上ID,名前,sum(case when NOT 商品名 LIKE '%サンプル%' then 1 else 0 end) as flg
102
+
103
+ from tbl
104
+
105
+ group by 売上ID,名前
106
+
107
+ ) as t1
108
+
109
+ where not exists(
110
+
111
+ select 売上ID,名前,sum(case when NOT 商品名 LIKE '%サンプル%' then 1 else 0 end) as flg
112
+
113
+ from tbl
114
+
115
+ group by 売上ID,名前
116
+
117
+ having 名前=t1.名前 and 売上ID<t1.売上ID
118
+
119
+ )
120
+
121
+ and flg>0
122
+
123
+
124
+
125
+ ```
126
+
127
+
128
+
129
+ - サンプルから現品に至る人
130
+
131
+
132
+
133
+ ちょっと意味がわからない

2

chousei

2019/06/11 07:20

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -25,3 +25,67 @@
25
25
  もしちゃんと管理したいなら、サンプルカラムをつくってそのon/offで
26
26
 
27
27
  きちんとサンプルかどうか判別できるようにしたほうが効率的です
28
+
29
+
30
+
31
+ # sample
32
+
33
+ アクセスと書式が違ったらうまく読み替えてください
34
+
35
+ ```SQL
36
+
37
+ create table tbl(pid int primary key auto_increment,売上ID int,受注日 date,名前 varchar(20),商品名 varchar(30));
38
+
39
+ insert into tbl(売上ID,受注日,名前,商品名) values
40
+
41
+ (10001,'2019-05-01','鈴木','AAAAAサンプル'),
42
+
43
+ (10001,'2019-05-01','鈴木','BBBBBBB'),
44
+
45
+ (10002,'2019-05-05','佐藤','DDDDDDD'),
46
+
47
+ (10003,'2019-06-12','井上','DDDDDDD'),
48
+
49
+ (10003,'2019-06-12','井上','EEEEEサンプル'),
50
+
51
+ (10004,'2019-07-10','田中','CCCCCサンプル'),
52
+
53
+ (10004,'2019-07-10','田中','EEEEEサンプル'),
54
+
55
+ (10004,'2019-07-10','田中','GGGGGGG'),
56
+
57
+ (10011,'2019-05-11','鈴木','XXXXXX'),
58
+
59
+ (10012,'2019-06-05','佐藤','YYYYYサンプル');
60
+
61
+ ```
62
+
63
+ - 初回にサンプルを買う人
64
+
65
+ ```SQL
66
+
67
+ select * from (
68
+
69
+ select 売上ID,名前,sum(case when 商品名 LIKE '%サンプル%' then 1 else 0 end) as flg
70
+
71
+ from tbl
72
+
73
+ group by 売上ID,名前
74
+
75
+ ) as t1
76
+
77
+ where not exists(
78
+
79
+ select 売上ID,名前,sum(case when 商品名 LIKE '%サンプル%' then 1 else 0 end) as flg
80
+
81
+ from tbl
82
+
83
+ group by 売上ID,名前
84
+
85
+ having 名前=t1.名前 and 売上ID<t1.売上ID
86
+
87
+ )
88
+
89
+ and flg>0
90
+
91
+ ```

1

chousei

2019/06/11 07:16

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -21,3 +21,7 @@
21
21
 
22
22
 
23
23
  で、書き方がかわってきます
24
+
25
+ もしちゃんと管理したいなら、サンプルカラムをつくってそのon/offで
26
+
27
+ きちんとサンプルかどうか判別できるようにしたほうが効率的です