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

回答編集履歴

2

簡潔に

2017/11/01 04:47

投稿

yuki-saito
yuki-saito

スコア928

answer CHANGED
@@ -12,15 +12,5 @@
12
12
  |A|xxx|
13
13
  |B|yyy|
14
14
 
15
- このテーブルをitem_idでグルーピング
16
- |item_id|name|
17
- |:--:|--:|
18
- |A|xxx|
19
- |A|xxx|
20
- |A|xxx|
21
- |B|yyy|
22
- |B|yyy|
23
- |C|zzz|
24
-
25
- COUNTを取ると、Aは3つ、Bは2つ、Cは1つなので
15
+ テーブルの中でAは3つ、Bは2つ、Cは1つなので
26
16
  `COUNT(item_id) > 1` だとAとBなので、重複しているレコードが抽出されるという訳です。

1

簡単な説明を追加

2017/11/01 04:46

投稿

yuki-saito
yuki-saito

スコア928

answer CHANGED
@@ -1,3 +1,26 @@
1
1
  group byで同じitem_idをまとめているのは分かりますよね?
2
2
  その中でCOUNTが1より大きい。つまりはレコードが2個以上のものを抽出する訳ですから
3
- 「1つしかない=重複していないもの」は抽出されず、「2個以上=重複しているもの」は抽出されるということになります。
3
+ 「1つしかない=重複していないもの」は抽出されず、「2個以上=重複しているもの」は抽出されるということになります。
4
+
5
+ こんなテーブルはおかしいですが、説明だけすると
6
+ |item_id|name|
7
+ |:--:|--:|
8
+ |A|xxx|
9
+ |B|yyy|
10
+ |C|zzz|
11
+ |A|xxx|
12
+ |A|xxx|
13
+ |B|yyy|
14
+
15
+ このテーブルをitem_idでグルーピング
16
+ |item_id|name|
17
+ |:--:|--:|
18
+ |A|xxx|
19
+ |A|xxx|
20
+ |A|xxx|
21
+ |B|yyy|
22
+ |B|yyy|
23
+ |C|zzz|
24
+
25
+ COUNTを取ると、Aは3つ、Bは2つ、Cは1つなので
26
+ `COUNT(item_id) > 1` だとAとBなので、重複しているレコードが抽出されるという訳です。