投稿する

H27春 修正依頼 [0484]

 名無しさん(No.1) 
設問のSQL文では世帯表と会員表を結合して、班ごとにグループ化しています。この処理によってできる表は自治体に所属する会員の全てが班ごとにグループ化されたものになります。

COUNT(*)はグループ内のレコード数を取得する集計関数なので、上記のグループ化された表に対してCOUNT(*)を指定することで班ごとの会員数を表示することができます。
また班ごとの世帯数は、班ごとにグループされた中に何種類の世帯番号が存在するかを調べればよいので、COUNT(世帯表.世帯番号)にDISTINCTを指定し、COUNT(DISTINCT 世帯表.世帯番号)とすることで重複行をカウントしないようにします。

したがって正しい組合せは「イ」です。←*ウです*
自治会に所属する全ての会員には会員番号が割り当てられているため COUNT(会員表.会員番号) はCOUNT(*)と同じ値になります。
MAX(会員表.会員番号)は、班員に割り当てられている番号のうち最も値の大きい番号が取得されるだけなので不適切です。
正しい。
COUNT(世帯表.世帯番号)では1つの世帯に2名以上の会員が所属する場合に重複してカウントされてしまうため不適切です。

データベース 設問3 解答より
2015.10.06 13:23
管理人(No.2) 
ご報告ありがとうございます。
ご指摘のとおり、"正解は「ウ」です"の間違いです。

早速、訂正させていただきました。
2015.10.07 01:03
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop