Techブログ

Tech blog

インターン生ブログ

【SQLで集計】GROUP BYを用いた便利な集計方法についてご紹介

カテゴリ:インターン生ブログ

2020.06.22

このエントリーをはてなブックマークに追加

こんにちは!伊神です!

この記事では、「SQLの種類」と「集計関数」について簡単にご紹介します。

集計関数については実際にSQL文を使いサンプルデータを用いてデータを集計する例を記事にしています。

SQLとは

SQLはデータベースに格納されたデータを操作する言語です。大量のデータを効率的に操作することができます。

SQLは国際標準化されているため、OracleやMySQL、PostgreSQLなど媒体がどこであれ同じSQLで利用することができます。

SQLの種類3つ

データ操作言語(Data Manipulation Language)

データ操作言語(DML)は、データベースに対してデータを追加・更新・削除などを行うためのSQLです。

  • SELECT(データの検索)
  • INSERT(データの追加)
  • UPDATE(データの更新)
  • DELETE(データの削除)

SQLの種類なかでも特に使用頻度が高いです。

データ定義言語(Data Definition Language)

データ定義言語(DDL)は、テーブルなどを作成・削除・設定変更を行うためのSQLです。

  • CREATE(テーブルの作成)
  • ALTER(テーブルの設定変更)
  • DROP(テーブルの削除)
  • TRUNCATE(テーブルデータの削除)

テーブルの管理する際に必要となります。

データ制御言語(Data Control Language)

データ制御言語(DCL)は、DMLやDDLの利用を制御するためのSQLです。

  • GRANT(権限付与)
  • REVOKE(権限剥奪)

データベースの管理する際に必要となります。

SQLを使用した集計

先ほどご紹介したデータ操作言語(DML)のSELECTと集計関数でデータの集計の仕方をご紹介します。

今回はサンプルデータとしてMySQLの公式に置いてあるデータを使用しました。大量のデータがあるので学習用サンプルデータとしては最適です。

MySQL:https://dev.mysql.com/doc/index-other.html

是非使ってみてください!!

今回は「city」という名前のテーブルを使って集計方法をご紹介したいと思います。

合計を求める(SUM)

合計を求めるには、SUM関数を使用します。今回はデータの人口(Population)の合計を出力してみます。

SUM()のカッコ内に合計で出したいカラム名を指定することで、そのカラムの合計値が出力されます。

平均を求める(AVG)

平均を求めるには、AVG関数を使用します。今回は人口(Population)の平均を出力してみます。

AVG()のカッコ内に合計で出したいカラム名を指定することで、そのカラムの平均値が出力されます。

最大値を求める(MAX),最小値を求める(MIN)

最大値を求めるにはMAX関数を使用します。逆に、最小値を求めるにはMIN関数を使用します。

人口(Population)の最大値、最小値を出力してみます。まずは最大値から

次に最小値を出力します。

データの個数を数える(COUNT)

データの個数(行数)を求めるにはCOUNT関数を使用します。COUNT関数の場合はレコードの行数をカウントする関数なので、どの列を指定してもいいので、カッコ内には「*」にします。

データをグループ化(GROUP BY)

今までは単純に合計値や平均値を出力していましたが、例えば今回のデータだと「国名コード(CountryCode)ごとの最大の人口(Population)」が知りたい場合「GROUP BY」を使用します。

データがグループ化されて「国名コード(CountryCode)ごとの最大の人口(Population)」を出力することができました。

集計結果に対する条件指定(HAVING)

「GROUP BY」でグループ化で出力されたデータにさらに条件を指定したい場合「HAVING」を使用します。

「国名コード(CountryCode)ごとの最大の人口(Population)」に「人口(Population)の平均が1000000以上」という条件を指定します。

これで、「国名コード(CountryCode)ごとの人口(Population)の平均が1000000以上の最大人口(Population)」が出力されました。

最後に

今回はSQLの種類と集計方法について簡単にご紹介しました。

SQLを使うことにより自分の欲しい情報を取得することができます。

記述がシンプルで扱いやすく他にも様々な集計関数があるので是非調べてみて下さい!!

一覧へ戻る

記事をカテゴリから探す