質問編集履歴
2
【前提】の箇所で間違えて中グループと記載していたのを大グループに修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
・小グループのコードは重複しない
|
20
20
|
|
21
|
-
・ID(要は人)は他の
|
21
|
+
・ID(要は人)は他の大グループに所属していることもあるが大グループ毎に別人と考える
|
22
22
|
|
23
23
|
・複数小グループに属する数が2以上であればカウント
|
24
24
|
|
1
方言無しSQLにしたい要望を追記。思いついたSQLを追記。
test
CHANGED
File without changes
|
test
CHANGED
@@ -13,6 +13,8 @@
|
|
13
13
|
|
14
14
|
|
15
15
|
【前提条件】
|
16
|
+
|
17
|
+
・SQLは方言に依存しないものを使用する(標準SQLで出したい)
|
16
18
|
|
17
19
|
・小グループのコードは重複しない
|
18
20
|
|
@@ -37,6 +39,8 @@
|
|
37
39
|
|
38
40
|
|
39
41
|
【テーブル内のデータ】
|
42
|
+
|
43
|
+
G_TABLE:グループテーブル
|
40
44
|
|
41
45
|
|LARGE_GROUP|SMALL_GROUP|ID|
|
42
46
|
|
@@ -102,6 +106,70 @@
|
|
102
106
|
|
103
107
|
|
104
108
|
|
109
|
+
【自分で思いつき、試してみたSQL】
|
110
|
+
|
111
|
+
```SQL
|
112
|
+
|
113
|
+
SELECT
|
114
|
+
|
115
|
+
LARGE_GROUP,
|
116
|
+
|
117
|
+
COUNT(ID) AS 人数
|
118
|
+
|
119
|
+
FROM
|
120
|
+
|
121
|
+
G_TABLE origin
|
122
|
+
|
123
|
+
inner join
|
124
|
+
|
125
|
+
(
|
126
|
+
|
127
|
+
SELECT
|
128
|
+
|
129
|
+
KAKEMOCHI.LARGE_GROUP
|
130
|
+
|
131
|
+
KAKEMOCHI.KAKEMOCHI_ID
|
132
|
+
|
133
|
+
FROM (
|
134
|
+
|
135
|
+
SELECT
|
136
|
+
|
137
|
+
LARGE_GROUP AS KAKEMOCHI_ID_LG,
|
138
|
+
|
139
|
+
ID AS KAKEMOCHI_ID,
|
140
|
+
|
141
|
+
COUNT(SMALL_GROUP) AS JOINCOUNT
|
142
|
+
|
143
|
+
FROM
|
144
|
+
|
145
|
+
G_TABLE
|
146
|
+
|
147
|
+
GROUP BY
|
148
|
+
|
149
|
+
LARGE_GROUP,
|
150
|
+
|
151
|
+
ID
|
152
|
+
|
153
|
+
HAVING JOINCOUNT > 1
|
154
|
+
|
155
|
+
) KAKEMOCHI --複数小グループに属している人の大グループとIDを出したテーブル
|
156
|
+
|
157
|
+
ON
|
158
|
+
|
159
|
+
origin.LARGE_GROUP = KAKEMOCHI.LARGE_GROUP
|
160
|
+
|
161
|
+
AND origin.ID = KAKEMOCHI.ID
|
162
|
+
|
163
|
+
GROUP BY
|
164
|
+
|
165
|
+
origin.LARGE_GROUP
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
```
|
170
|
+
|
171
|
+
|
172
|
+
|
105
173
|
|
106
174
|
|
107
175
|
よろしくお願いします。
|