HOME»基本情報技術者試験掲示板»平成27年春期 問3 設問3について
投稿する
平成27年春期 問3 設問3について [0614]
nameさん(No.1)
質問です。
解答がCOUNT(DISTINCT世帯表.世帯番号)となっているのですが、
世帯表の世帯番号は主キーなのでそもそも重複しないのではないでしょうか。
COUNT(DISTINCT会員表.世帯番号)であればなんとなくわかるのですが、
解説を見てもわからず、イメージができませんでした。
教えてください。
解答がCOUNT(DISTINCT世帯表.世帯番号)となっているのですが、
世帯表の世帯番号は主キーなのでそもそも重複しないのではないでしょうか。
COUNT(DISTINCT会員表.世帯番号)であればなんとなくわかるのですが、
解説を見てもわからず、イメージができませんでした。
教えてください。
2016.04.09 08:52
みずさん(No.2)
WHERE句で結合し、GROUP化すると以下のようになります
世帯番号 班 氏名
-------------
0181 02 伊藤太郎
0181 02 伊藤幸子
1111 02 田中仁
1111 02 田中次男
------------- ←グループの区切り
2222 05 松村雄二
3333 05 水野忠邦
3333 05 水野瞳
-------------
これに、COUNT(世帯表.世帯番号)を行うと
0181
0181
1111
・・・・のように、班ごとの会員数をカウントした事と同じになります。
DISTINCTを付ければ、
0181
1111
と、しっかり2が返されます。
ちなみに、COUNT(DISTINCT世帯表.世帯番号)とCOUNT(DISTINCT会員表.世帯番号)
の結果は同じになります。
世帯番号 班 氏名
-------------
0181 02 伊藤太郎
0181 02 伊藤幸子
1111 02 田中仁
1111 02 田中次男
------------- ←グループの区切り
2222 05 松村雄二
3333 05 水野忠邦
3333 05 水野瞳
-------------
これに、COUNT(世帯表.世帯番号)を行うと
0181
0181
1111
・・・・のように、班ごとの会員数をカウントした事と同じになります。
DISTINCTを付ければ、
0181
1111
と、しっかり2が返されます。
ちなみに、COUNT(DISTINCT世帯表.世帯番号)とCOUNT(DISTINCT会員表.世帯番号)
の結果は同じになります。
2016.04.10 21:32