ゆうき( @BASEBALLY15 )です^^

前回に,MySQLの基本的な内容を学習しました.

今回は,データの計算方法について教えて欲しいです.

わかりました^^
それでは,今回は, データの合計,平均,最大値,最小値などを計算する方法についてご紹介します.

よろしくお願いします・・・

(Udemy『はじめてのMySQL・データ分析入門』を参考)

sum,avg,max,min,count,group byを使ってみよう!

MySQL Workbench

MySQL Workbenchを使います.

前回と同様に,

サンプルデータベースの『world』の中の,『city』テーブルを使います.

#『world』というサンプルデータベースを使う
use world;

#全体表示
select * from city;
 IDNameCountryCodeDistrictPopulation
 1KabulAFGKabol1780000
 2QandaharAFGQandahar237500
 3HeratAFGHerat186800
 4Mazar-e-SharifAFGBalkh127800
 5AmsterdamNLDNoord-Holland731200
 6RotterdamNLDZuid-Holland593321
 7HaagNLDZuid-Holland440900
 8UtrechtNLDUtrecht234323
 9EindhovenNLDNoord-Brabant201843
 10TilburgNLDNoord-Brabant193238
 

それでは,コードを見ていきましょう⤵

sum,avg,max,minを求めよう!

それぞれの意味は以下のとおりです.

  • sum→合計
  • avg→平均
  • max→最大値
  • min→最小値

上のテーブルの”Population“について,処理を行っていきます.

#"Population"の合計と平均と最小値と最大値を表示する
select sum(Population), avg(Population), max(Population), min(Population) from city;
 sum(Population)avg(Population)max(Population)min(Population)
 1429559884350468.22361050000042

このように,まとめて表示することができます.

次に,テーブルのデータ数を求めたいと思います.

countでデータ数を求めよう!

上で示しているテーブルは,10個しか表示していませんが,

実際に業務などで使う場合は,数千,数万というデータを扱わなければいけません.

その際に,データがいくつあるのかを調べておくために『count』を使います.

#データ数を求める
select count(*) from city;
 count(*)
 4079

この結果,cityテーブルのデータ数は,

4079個

あることが分かりました.

(演習)指定した地区の個数を求めてみよう!

これを少し,応用させて,”Holland “という名前が付いている ” District “の個数を求めたいと思います.

#"Holland"という地区の数を求める
select District, count(*) from city where District like "%Holland%";
 Districtcount(*)
 Noord-Holland11

%Holland を囲むことで,その文字を含む地区のみを取り出すことができます.

結果, Holland という名前が付いている地域が11個あることが分かりました.

地区ごとにgroup byを使ってまとめよう!

最後に,group by句を使って,地区ごとにまとめます.

#地域でまとめて抽出
select District, sum(Population) from city group by District;
 Districtsum(Population)
 Kabol1780000
 Qandahar237500
 Herat186800
 Balkh127800
 Noord-Holland1219028
 Zuid-Holland1476710
 Utrecht360593
 Noord-Brabant684649
 Groningen172701
 Gelderland545548

このコードをまとめると,以下のようになります.

  1. cityテーブルを使う(from
  2. Districtでまとめる(group by
  3. DistrictとPopulationの合計(sum(Population))を選択(select)する

もし,『group by』が無かったら,どのように表示されるのでしょうか?

select District, sum(Population) from city ;
 Districtsum(Population)
 Kabol1429559884

このように,全体の合計が一行目に表示されてしまいます.

これでは,地域ごとの人口数が分からないですね.

終わりに

今回は,MySQLについて,2回目の投稿でした.

コードを見てもらうと分かるのですが,Excelを使うよりも早くに計算することができます.

ぜひ,みなさんもMySQLを使ってみてください^^

それでは・・・

Q &A

参考資料

MySQL Workbench インストール方法

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA