ここから本文です

基本情報技術者試験 SQL GROUP BYもDISTINCTも重複をなくせるということでよろ...

gbo********さん

2017/8/823:22:19

基本情報技術者試験 SQL

GROUP BYもDISTINCTも重複をなくせるということでよろしいですか?

閲覧数:
193
回答数:
2
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

2017/8/1109:21:40

質問の意図が、
「結局、distinct も group by も、やってることは同じですか?」
という意味であれば、それは違う。

「住民台帳において、全ての苗字を挙げる(重複を除く)」
であれば、確かにdistinct でも group by でも同じ結果が得られる。

(a)
select distinct 苗字
from 住民台帳

(b)
select 苗字
from 住民台帳
group by 苗字

しかし、
「住民台帳において、100人以上存在する苗字を挙げる(重複を除く)」
になると、group by でしか書けない。

(c)
select 苗字
from 住民台帳
group by 苗字
having count(*) >= 100

これは、distinct は「重複の除去」を目的としており、group by は「レコードの集計、グループ化」を目的としているからだ。
(a)と(b)は、たまたま両者の機能が重なって同じ結果が得られたに過ぎない。

ベストアンサー以外の回答

1〜1件/1件中

x27********さん

2017/8/1021:13:02

前者はグループ化に使いますが重複はなくならない。後者は、重複をなくします。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる