SQLについて

ココさん  
(No.1)
アイテック出版の2019応用情報・高度共通 午前試験対策書のp281の②グループ化と集合関数の説明が分からないため教えてください。

応用情報処理試験のSQLに関する説明ですが、
①グループ内で1つの値となるもの、というのは、値が計算できる数字か、文字だとしたら一種類しかない状態のことを言ってるのでしょうか?
②group by区で指定した列名に…、のぐたいなイメージが分かりませんので教えてください。
③ group by句 は男女区分以外にも複数とか、関数とか指定出来るのでしょうか?

よろしくお願いします。


2019.06.25 08:15
tacはしらないさん 
(No.2)
3から答えたほうがよいので
3できますよ。
複数列単位で集合をとることになります。  
具体的には
group by 部署番号、男女区分
も可能です。

1.2は複雑に考えなくて
要はその集合により一意性が担保されている
ものならselect句に指定できる。ということです。

例えば定数はどんな集合でも一定ですよね。
なので、指定可能
先の例だと部屋番号、男女区分でgroup by
したら
group byによって一まとまりになっている
⇒一意性がある。から指定可能です。


では問題。部屋番号、男女区分でgroupbyをおこなった場合、
上長は指定できるでしょうか?


答えはnoです。ねむいのであした
2019.06.26 23:32
tacはしらないさん 
(No.3)
続き

部屋番号、男女区分でgroup byしたとき 
たしかに上長はどの集合でも一意に定まる値になるように思えます。

が、それはあくまでこのデータを知っている人間の判断です。
dbとしては部署番号、男女区分でgroup by
しただけでは上長は一意とはいえないのです。
事実、上長にむちゃな値を追加できますね。

上記は、生年月日のほうがわかりやすいかも。
部署番号と男女区分だけのgroup byでは
生年月日をselectに指定したとしても、
どれ!?ってなりますからね。

ここで、集合関数だけが代表値になります~の下りは
部署番号、男女区分で、group byして
min(社員番号)などとすれば
かならずそのグループごとのmin()を求めることになり、一意であることが保証されているため、使えますよね。

という話です。以上
2019.06.29 00:17

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop