こんにちは、ひっしーです!
家にいる時間が増えているのに今までよりも時間が足りないと感じますね。。
なんででしょう?
モンハンもモンストもできていない、、、
ふつうはステイホームで時間が余るはず、、、
理由は、「時間がいっぱいあるー」と思って興味の幅が広くなったせいですかね!
やたらといろいろなものに手を出してはやめてというのをしていると時間を浪費します。。。
皆さんは時間の使い方は計画的に!!
こんな僕が最近力をいれているのはゲーム作りですね!
unityという有名なゲーム開発エンジンで2Dスクロールシューティング??を作ってます。
動かすよりも素材(絵とかもろもろ)集めが大変なんだなって思いました。。。
ゲームクリエイターは美術ができる人のほうが需要あるんだろうなと身に染みて実感中です。
私も将来ゲーム制作に携われたらいいなと思う今日この頃、、、
さて、本日も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感覚で楽しく勉強出来たらなと思ってます!