過去問解きまくり研究所 ホーム

平成25年度 秋期 午前Ⅱ 問21

データベース

SQL文

“社員”表から同姓同名が存在する社員の氏名を抽出するSQL文はどれか。

社員

社員番号氏名生年月日所属
0001新井 健二1970-02-04営業部
0002鈴木 太郎1975-03-13総務部
0003佐藤 宏1981-07-11技術部
0004田中 博1978-01-24企画部
0005鈴木 太郎1968-11-09営業部
⋮⋮⋮⋮
答えと解説を見る

✓ これが正解アSELECT 氏名 FROM 社員 GROUP BY 氏名 HAVING COUNT(*) > 1

解説

氏名でグループ化し、件数が2以上のグループだけを残します。

同姓同名の社員がいるかどうかは、同じ氏名の行が2行以上あるかどうかで判定できます。GROUP BY 氏名で同じ氏名の行を一つのグループにまとめ、HAVING COUNT(*) > 1でグループごとの行数が1を超えるものだけを残すと、重複している氏名だけが取り出せます。例の表なら、鈴木 太郎のグループが2行になるので抽出されます。WHEREは行を一つずつ見て絞り込む句で、グループの件数を条件にするときはHAVINGを使います。集計結果で絞るならHAVING、と覚えておくと選べます。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:平成25年度 秋期 システムアーキテクト試験 午前Ⅱ 問21

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)