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

回答編集履歴

1

調整

2019/10/28 04:32

投稿

yambejp
yambejp

スコア118110

answer CHANGED
@@ -17,4 +17,36 @@
17
17
  substr(KEY1,1,2)=substr(t1.KEY1,1,2) and
18
18
  KEY1>t1.KEY1
19
19
  );
20
+ ```
21
+ # 調整
22
+ - KEY1を比較
23
+ - 同じならKEY2を比較
24
+ - 同じならKEY3を比較
25
+ - すべて同じなら1個だけ
26
+
27
+ ```SQL
28
+ create table tbl(KEY1 varchar(20),KEY2 varchar(10),KEY3 varchar(10));
29
+ insert into tbl values
30
+ ('A1191028000001','00002','0'),
31
+ ('B1191028000001','00001','1'),
32
+ ('B1191028000002','00001','1'),
33
+ ('B1191028000003','00002','0'),
34
+ ('B1191028000003','00002','1'),
35
+ ('C1191028000001','00002','1'),
36
+ ('C1191028000002','00001','1'),
37
+ ('C1191028000002','00002','0'),
38
+ ('D1191028000001','00001','0'),
39
+ ('D1191028000001','00001','0');
40
+
41
+
42
+ select distinct * from tbl as t1
43
+ where not exists
44
+ (select 1 from tbl where
45
+ (substr(KEY1,1,2)=substr(t1.KEY1,1,2) and
46
+ (KEY1>t1.KEY1 or
47
+ KEY1=t1.KEY1 and KEY2>t1.KEY2 or
48
+ KEY1=t1.KEY1 and KEY2=t1.KEY2 and KEY3>t1.KEY3
49
+ )
50
+ )
51
+ );
20
52
  ```