質問編集履歴
4
タイトルおよび内容追記
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
[MySQL]特定のグループで重複しているデータのみを除外したい
|
1
|
+
[MySQL]特定のグループで重複しているデータのみを除外して取得したい
|
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
MySQLを使用しています。
|
6
6
|
|
7
|
-
特定のカラムが重複しているデータを
|
7
|
+
特定のカラムが重複しているデータを除外して取得(select)したいのですが、
|
8
8
|
|
9
9
|
単純なdistinctやgroup byでは厳しいと判断してご質問させていただきます。
|
10
10
|
|
3
追記・整理
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,32 +7,6 @@
|
|
7
7
|
特定のカラムが重複しているデータを削除したいのですが、
|
8
8
|
|
9
9
|
単純なdistinctやgroup byでは厳しいと判断してご質問させていただきます。
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
下記のようなデータがあったとして、
|
14
|
-
|
15
|
-
取得したいデータは下記になります。
|
16
|
-
|
17
|
-
|列1|列2|列3|列4|列5|
|
18
|
-
|
19
|
-
|:--|:--:|--:|--:|--:|
|
20
|
-
|
21
|
-
|A|1|1|1|01|
|
22
|
-
|
23
|
-
|A|1|2|1|01|
|
24
|
-
|
25
|
-
|A|1|3|1|01|
|
26
|
-
|
27
|
-
|C|1|1|1|03|
|
28
|
-
|
29
|
-
|C|1|3|1|03|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
列2~4が同一のものを除外したいです。
|
34
|
-
|
35
|
-
単純にgroup byすると列1がCのデータも除外対象となるため、悩んでおります。
|
36
10
|
|
37
11
|
|
38
12
|
|
@@ -58,9 +32,47 @@
|
|
58
32
|
|
59
33
|
|C|1|3|1|03|
|
60
34
|
|
35
|
+
|D|1|1|1|04|
|
36
|
+
|
37
|
+
|E|1|1|1|05|
|
38
|
+
|
39
|
+
|E|1|2|1|05|
|
40
|
+
|
41
|
+
|E|1|3|1|05|
|
42
|
+
|
43
|
+
|E|1|4|1|05|
|
44
|
+
|
45
|
+
|E|1|5|1|05|
|
61
46
|
|
62
47
|
|
48
|
+
|
63
|
-
|
49
|
+
■取得したいデータ
|
50
|
+
|
51
|
+
|列1|列2|列3|列4|列5|
|
52
|
+
|
53
|
+
|:--|:--:|--:|--:|--:|
|
54
|
+
|
55
|
+
|A|1|1|1|01|
|
56
|
+
|
57
|
+
|A|1|2|1|01|
|
58
|
+
|
59
|
+
|A|1|3|1|01|
|
60
|
+
|
61
|
+
|C|1|1|1|03|
|
62
|
+
|
63
|
+
|C|1|3|1|03|
|
64
|
+
|
65
|
+
|D|1|1|1|04|
|
66
|
+
|
67
|
+
|E|1|4|1|05|
|
68
|
+
|
69
|
+
|E|1|5|1|05|
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
列2~4が同一のものを除外したいです。
|
74
|
+
|
75
|
+
|
64
76
|
|
65
77
|
列1は、商品区分を意味しています
|
66
78
|
|
@@ -72,23 +84,7 @@
|
|
72
84
|
|
73
85
|
列5は、搬入コードを意味しています
|
74
86
|
|
75
|
-
商品名、商品コード、価格が同一のものを除外したいのですが、
|
76
87
|
|
77
|
-
搬入コードごとにグループ化をしたいです。
|
78
|
-
|
79
|
-
搬入コードが別であれば別のデータとして扱って、取得(select)したいです。
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
※列2~4が同一であれば除外という感じでselectしたいです。
|
84
|
-
|
85
|
-
→列1:Cは列3[商品コード]=2がないため除外対象ではなくしたいです。
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
追記②:
|
90
|
-
|
91
|
-
端的に申しますと下記のデータで一グループと考えて合致するデータがあるものを除外したいです。
|
92
88
|
|
93
89
|
X 1 1 1 XX
|
94
90
|
|
@@ -98,7 +94,9 @@
|
|
98
94
|
|
99
95
|
※X部分は可変なデータになります。
|
100
96
|
|
97
|
+
|
98
|
+
|
101
|
-
|
99
|
+
↑↑列1=CはC 1 2 1 XXがないため、除外としたくないです。
|
102
100
|
|
103
101
|
|
104
102
|
|
2
追記2
test
CHANGED
File without changes
|
test
CHANGED
@@ -33,12 +33,6 @@
|
|
33
33
|
列2~4が同一のものを除外したいです。
|
34
34
|
|
35
35
|
単純にgroup byすると列1がCのデータも除外対象となるため、悩んでおります。
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
除外か否かのキーとしては列5となってます。
|
40
|
-
|
41
|
-
列2~4がグループとして重複データを除外したいです。
|
42
36
|
|
43
37
|
|
44
38
|
|
@@ -92,6 +86,22 @@
|
|
92
86
|
|
93
87
|
|
94
88
|
|
89
|
+
追記②:
|
90
|
+
|
91
|
+
端的に申しますと下記のデータで一グループと考えて合致するデータがあるものを除外したいです。
|
92
|
+
|
93
|
+
X 1 1 1 XX
|
94
|
+
|
95
|
+
X 1 2 1 XX
|
96
|
+
|
97
|
+
X 1 3 1 XX
|
98
|
+
|
99
|
+
※X部分は可変なデータになります。
|
100
|
+
|
101
|
+
ここでいうと上記3レコードを一つの塊としております。
|
102
|
+
|
103
|
+
|
104
|
+
|
95
105
|
説明不足で申し訳ありませんが、お力を貸してください。
|
96
106
|
|
97
107
|
|
1
各種追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -66,6 +66,32 @@
|
|
66
66
|
|
67
67
|
|
68
68
|
|
69
|
+
追記①:
|
70
|
+
|
71
|
+
列1は、商品区分を意味しています
|
72
|
+
|
73
|
+
列2は、商品名を意味しています
|
74
|
+
|
75
|
+
列3は、商品コードを意味しています
|
76
|
+
|
77
|
+
列4は、価格を意味しています
|
78
|
+
|
79
|
+
列5は、搬入コードを意味しています
|
80
|
+
|
81
|
+
商品名、商品コード、価格が同一のものを除外したいのですが、
|
82
|
+
|
83
|
+
搬入コードごとにグループ化をしたいです。
|
84
|
+
|
85
|
+
搬入コードが別であれば別のデータとして扱って、取得(select)したいです。
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
※列2~4が同一であれば除外という感じでselectしたいです。
|
90
|
+
|
91
|
+
→列1:Cは列3[商品コード]=2がないため除外対象ではなくしたいです。
|
92
|
+
|
93
|
+
|
94
|
+
|
69
95
|
説明不足で申し訳ありませんが、お力を貸してください。
|
70
96
|
|
71
97
|
|
@@ -75,3 +101,9 @@
|
|
75
101
|
|
76
102
|
|
77
103
|
unionやgroup byを試してみましたが、うまくいきませんでした。
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
### バージョン
|
108
|
+
|
109
|
+
MySQL 5.7.15
|