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

質問編集履歴

2

【前提】の箇所で間違えて中グループと記載していたのを大グループに修正

2020/06/25 02:17

投稿

kukku-zelda
kukku-zelda

スコア22

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
  【前提条件】
9
9
  ・SQLは方言に依存しないものを使用する(標準SQLで出したい)
10
10
  ・小グループのコードは重複しない
11
- ・ID(要は人)は他のグループに所属していることもあるがグループ毎に別人と考える
11
+ ・ID(要は人)は他のグループに所属していることもあるがグループ毎に別人と考える
12
12
  ・複数小グループに属する数が2以上であればカウント
13
13
 
14
14
  【得たい結果】

1

方言無しSQLにしたい要望を追記。思いついたSQLを追記。

2020/06/25 02:17

投稿

kukku-zelda
kukku-zelda

スコア22

title CHANGED
File without changes
body CHANGED
@@ -6,6 +6,7 @@
6
6
  お力を貸していただけないでしょうか。
7
7
 
8
8
  【前提条件】
9
+ ・SQLは方言に依存しないものを使用する(標準SQLで出したい)
9
10
  ・小グループのコードは重複しない
10
11
  ・ID(要は人)は他の中グループに所属していることもあるが中グループ毎に別人と考える
11
12
  ・複数小グループに属する数が2以上であればカウント
@@ -18,6 +19,7 @@
18
19
  |C|4|
19
20
 
20
21
  【テーブル内のデータ】
22
+ G_TABLE:グループテーブル
21
23
  |LARGE_GROUP|SMALL_GROUP|ID|
22
24
  |:--|:--|:--|
23
25
  |A|101|X000001|
@@ -50,5 +52,37 @@
50
52
   ・Z000002が301と303に属している
51
53
   ・Z000003が304と305に属している
52
54
 
55
+ 【自分で思いつき、試してみたSQL】
56
+ ```SQL
57
+ SELECT
58
+ LARGE_GROUP,
59
+ COUNT(ID) AS 人数
60
+ FROM
61
+ G_TABLE origin
62
+ inner join
63
+ (
64
+ SELECT
65
+ KAKEMOCHI.LARGE_GROUP
66
+ KAKEMOCHI.KAKEMOCHI_ID
67
+ FROM (
68
+ SELECT
69
+ LARGE_GROUP AS KAKEMOCHI_ID_LG,
70
+ ID AS KAKEMOCHI_ID,
71
+ COUNT(SMALL_GROUP) AS JOINCOUNT
72
+ FROM
73
+ G_TABLE
74
+ GROUP BY
75
+ LARGE_GROUP,
76
+ ID
77
+  HAVING JOINCOUNT > 1
78
+ ) KAKEMOCHI --複数小グループに属している人の大グループとIDを出したテーブル
79
+ ON
80
+ origin.LARGE_GROUP = KAKEMOCHI.LARGE_GROUP
81
+ AND origin.ID = KAKEMOCHI.ID
82
+ GROUP BY
83
+ origin.LARGE_GROUP
53
84
 
85
+ ```
86
+
87
+
54
88
  よろしくお願いします。