回答編集履歴
3
チョウセイ
answer
CHANGED
@@ -26,10 +26,11 @@
|
|
26
26
|
(10004,'2019-07-10','田中','CCCCCサンプル'),
|
27
27
|
(10004,'2019-07-10','田中','EEEEEサンプル'),
|
28
28
|
(10004,'2019-07-10','田中','GGGGGGG'),
|
29
|
+
(10005,'2019-07-10','吉田','HHHHサンプル'),
|
29
30
|
(10011,'2019-05-11','鈴木','XXXXXX'),
|
30
31
|
(10012,'2019-06-05','佐藤','YYYYYサンプル');
|
31
32
|
```
|
32
|
-
- 初回にサンプルを買
|
33
|
+
- 初回にサンプルを買った人
|
33
34
|
```SQL
|
34
35
|
select * from (
|
35
36
|
select 売上ID,名前,sum(case when 商品名 LIKE '%サンプル%' then 1 else 0 end) as flg
|
@@ -43,4 +44,24 @@
|
|
43
44
|
having 名前=t1.名前 and 売上ID<t1.売上ID
|
44
45
|
)
|
45
46
|
and flg>0
|
46
|
-
```
|
47
|
+
```
|
48
|
+
- 初回に現品を買った人
|
49
|
+
```SQL
|
50
|
+
select * from (
|
51
|
+
select 売上ID,名前,sum(case when NOT 商品名 LIKE '%サンプル%' then 1 else 0 end) as flg
|
52
|
+
from tbl
|
53
|
+
group by 売上ID,名前
|
54
|
+
) as t1
|
55
|
+
where not exists(
|
56
|
+
select 売上ID,名前,sum(case when NOT 商品名 LIKE '%サンプル%' then 1 else 0 end) as flg
|
57
|
+
from tbl
|
58
|
+
group by 売上ID,名前
|
59
|
+
having 名前=t1.名前 and 売上ID<t1.売上ID
|
60
|
+
)
|
61
|
+
and flg>0
|
62
|
+
|
63
|
+
```
|
64
|
+
|
65
|
+
- サンプルから現品に至る人
|
66
|
+
|
67
|
+
ちょっと意味がわからない
|
2
chousei
answer
CHANGED
@@ -11,4 +11,36 @@
|
|
11
11
|
|
12
12
|
で、書き方がかわってきます
|
13
13
|
もしちゃんと管理したいなら、サンプルカラムをつくってそのon/offで
|
14
|
-
きちんとサンプルかどうか判別できるようにしたほうが効率的です
|
14
|
+
きちんとサンプルかどうか判別できるようにしたほうが効率的です
|
15
|
+
|
16
|
+
# sample
|
17
|
+
アクセスと書式が違ったらうまく読み替えてください
|
18
|
+
```SQL
|
19
|
+
create table tbl(pid int primary key auto_increment,売上ID int,受注日 date,名前 varchar(20),商品名 varchar(30));
|
20
|
+
insert into tbl(売上ID,受注日,名前,商品名) values
|
21
|
+
(10001,'2019-05-01','鈴木','AAAAAサンプル'),
|
22
|
+
(10001,'2019-05-01','鈴木','BBBBBBB'),
|
23
|
+
(10002,'2019-05-05','佐藤','DDDDDDD'),
|
24
|
+
(10003,'2019-06-12','井上','DDDDDDD'),
|
25
|
+
(10003,'2019-06-12','井上','EEEEEサンプル'),
|
26
|
+
(10004,'2019-07-10','田中','CCCCCサンプル'),
|
27
|
+
(10004,'2019-07-10','田中','EEEEEサンプル'),
|
28
|
+
(10004,'2019-07-10','田中','GGGGGGG'),
|
29
|
+
(10011,'2019-05-11','鈴木','XXXXXX'),
|
30
|
+
(10012,'2019-06-05','佐藤','YYYYYサンプル');
|
31
|
+
```
|
32
|
+
- 初回にサンプルを買う人
|
33
|
+
```SQL
|
34
|
+
select * from (
|
35
|
+
select 売上ID,名前,sum(case when 商品名 LIKE '%サンプル%' then 1 else 0 end) as flg
|
36
|
+
from tbl
|
37
|
+
group by 売上ID,名前
|
38
|
+
) as t1
|
39
|
+
where not exists(
|
40
|
+
select 売上ID,名前,sum(case when 商品名 LIKE '%サンプル%' then 1 else 0 end) as flg
|
41
|
+
from tbl
|
42
|
+
group by 売上ID,名前
|
43
|
+
having 名前=t1.名前 and 売上ID<t1.売上ID
|
44
|
+
)
|
45
|
+
and flg>0
|
46
|
+
```
|
1
chousei
answer
CHANGED
@@ -9,4 +9,6 @@
|
|
9
9
|
- 商品名の「サンプル」という文字も末尾にしかつかないのか
|
10
10
|
- 先頭や途中にもつくのか
|
11
11
|
|
12
|
-
で、書き方がかわってきます
|
12
|
+
で、書き方がかわってきます
|
13
|
+
もしちゃんと管理したいなら、サンプルカラムをつくってそのon/offで
|
14
|
+
きちんとサンプルかどうか判別できるようにしたほうが効率的です
|