グループか。
水曜日は技術がテーマなのですが、
自分はまだまだ青いので、初心者丸出しの内容ですみません。
DBを扱っている方ならsqlはお手の物かと思いますが、
問い合わせ条件で、特定のキーでグループ化するのがgroup by句です。
select aaa, sum(bbb) from tableA group by aaa
↑こんなの。aaaでグループ化した時のbbbの合計値とか。
で、group by句で指定した以外のキーもselectしたい時、
どうすればよいか。
例えば、今あなたは工場見学に申し込もうとしています。
空いているコースでゆっくり見学したいと思っていますが、
もともとの参加者が多いなら、当日の参加者が少々多くても
むしろ良い機会かもしれません。
こんな状態↓
コース:日程:参加者:コース総参加者
――――――――――――――――――
…
ビール工場コース:C日程:10人:1000人 ←断然コチラ
洗濯機工場コース:A日程: 5人:10人
…
ここで、工場見学テーブルにはコース、日程、参加者だけが
登録されているとします。
コースでグループ化してしまうと、各日程の情報が分かりません。
で、以下のようにします。
select
a.コース
a.日程
a.参加者
b.コース総参加者
from 工場見学 a left join (
select
コース
sum(参加者) as コース総参加者
from 工場見学
group by コース
) b on a.コース = b.コース
order by コース,日程
これなら、1000人申し込んでて10人のビールC日程はなんて狙い目なんだ!
ということが分かります。
単純にするためにいろいろ適当にしておりますので
ご参考まで、です。
もっと適切な方法とかありそうですが、上記のでも目的は果たせます。
悩みましたがなんとか解決できて良かったです。
ホントもっと勉強しないとな、と感じる日々でありますが
精進していきたいと思います。