BLOG

【プログラマー研修 Java SQL】ひっしーの記録5

こんにちは、ひっしーです!

家にいる時間が増えているのに今までよりも時間が足りないと感じますね。。

なんででしょう?

モンハンもモンストもできていない、、、

ふつうはステイホームで時間が余るはず、、、

理由は、「時間がいっぱいあるー」と思って興味の幅が広くなったせいですかね!

やたらといろいろなものに手を出してはやめてというのをしていると時間を浪費します。。。

皆さんは時間の使い方は計画的に!!

こんな僕が最近力をいれているのはゲーム作りですね!

unityという有名なゲーム開発エンジンで2Dスクロールシューティング??を作ってます。

動かすよりも素材(絵とかもろもろ)集めが大変なんだなって思いました。。。

ゲームクリエイターは美術ができる人のほうが需要あるんだろうなと身に染みて実感中です。

私も将来ゲーム制作に携われたらいいなと思う今日この頃、、、

さて、本日もSQLについてまとめていきます。

SQL:グループ

グループは、データを抽出する際のグループごとに集計する方法です!

例えば、料理の注文書で以下のような頼まれ方をしたとします。

1回目個数
ハンバーグ2個
コーラ1個
2回目個数
プリン2個
コーラ1個
ハンバーグ1個

この中で共通の商品の総注文個数を求めるときに使えます。

出力としては次のようにすることが可能です。

商品名個数
ハンバーグ3個
コーラ2個
プリン2個

では、実際に使用する以下の二つを順に説明します。

・GROUP BY
・HAVING

GROUP BY

グループ別に集計ができるものです。
指定した列を同一の要素ごとにまとめて集計することが出来ます。

使い方は以下のようになります。

# GROUP BY
SELECT
	名前,
    SUM(集計したい列)
FROM
	抽出するテーブル
GROUP BY
	グループ化する列
;

このように宣言すれば、上にある票のように出力されます。

HAVING

こちらは、先ほどのGROUP BYの後ろにつけて使用するものです。
WHEREに近い使い方をします。

# HAVING
SELECT
	名前,
    SUM(集計したい列)
FROM
	抽出するテーブル
GROUP BY
	グループ化する列
HAVING
	SUM(集計したい列) >= 3 #表示させたいものの条件
    #↑今回は集計した個数が3以上のものを表示するように
;

このように宣言した場合、上の表で集計後の個数が3個になっているハンバーグしか表示されなくなります。

所感として・・・

データベースへのアクセスと集計はかなり膨大な情報量の中から適切な情報を引っ張る必要があるので、GROUP BYのように重複している要素を一緒くたにして集計できるのはかなり便利に感じました。

まだまだ、奥の深いSQLの便利機能を多く覚えて業務にも生かしていきたいと思います。

まとめ

今回は、同一の要素をまとめて集計できるGROUP BYについて学んできました。

SQLのコマンド単体は単純なので覚えられているんですが、データベースアクセスの組み合わせが結構複雑なものが多かったりして苦労しています。

まだまだ、勉強が必要だと思いました。

4月も終わり、研修も終わりになりますが、まだまだ学ぶことはたくさんあります。

これからも学習は続けていきたいと思います。

知識は自分の武器になるので、RPG感覚で楽しく勉強出来たらなと思ってます!

BLOGトップへ戻る