回答編集履歴
1
調整
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
|
```
|