DISTINCTとは?
DISTINCTとは、選択結果から重複行を取り除く指定。関係モデル上は重複がない集合が本来の姿だが、SQLの表は多重集合なので明示的に指定する必要がある。試験では、重複が生じる原因の見極めと、除去に伴う整列・ハッシュのコストが問われる。
データベーススペシャリスト試験の過去問では1回出題されています。
でぃすてぃんくと
DISTINCTの意味
選択結果から重複行を取り除く指定。関係モデル上は重複がない集合が本来の姿だが、SQLの表は多重集合なので明示的に指定する必要がある。試験では、重複が生じる原因の見極めと、除去に伴う整列・ハッシュのコストが問われる。
DISTINCTの具体例
顧客表と受注表を結合して顧客名を取ると、受注が3件ある顧客は3行出る。DISTINCTで1行にまとめられるが、内部では整列またはハッシュ処理が走る。重複の原因が結合にあるなら、EXISTS述語で「受注が存在する顧客」を絞るほうが速いことが多い。
DISTINCTは試験でどう引っ掛けられる?
DISTINCTは選択リスト全体に効くのであって、直後の1列だけに効くのではない。また COUNT(DISTINCT 列) と COUNT(*) は別物で、前者はNULLを除いた異なり値の個数を返す。
DISTINCTと関連する用語
DISTINCTが出た過去問
次のSQL文と同じ検索結果が得られるSQL文はどれか。 SELECT DISTINCT TBL1.COL1 FROM TBL1 WHERE COL1 IN (S…
正解:SELECT DISTINCT TBL1.COL1 FROM TBL1 WHERE EXISTS (SELECT * FROM TBL2 WHERE TBL1.COL1 = TBL2.COL1)
IN述語による副問合せは、外側の行の値が副問合せの結果集合に含まれるかを判定するもので、相関副問合せを使ったEXISTS述語に書き換えられる。どちらもTBL2に同じCOL1の値が1件でもあればその行を残すという意味になり、結果は一致する。
出典:平成28年度 春期 データベーススペシャリスト試験 am2 問9(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。