SQLのGROUP BYを使ってサクッと集計!ハンズオンも紹介
  • facebookページ
  • twitterページ
  • 2020.04.23

    SQLのGROUP BYを使ってサクッと集計!ハンズオンも紹介

    SQLに大きなテーブルを作成した際、どのようにデータの集計をすればいいのでしょうか。そんなときに便利なのがSQLのGROUP BYです。このGROUP BYを使用することによって、たとえば「テーブル内でカテゴリー1に当てはまるモノは〇〇個」などといった集計を簡単かつ迅速におこなうことができるのです。

    今回の記事ではSQLのGROUP BYとは何かについて詳しく解説をしつつ、SQLのGROUP BYを使ったハンズオンを実施していきます。

    本記事の要点
    • GROUP BYはグループ化のためのSQL文
    • SQLのGROUP BYで簡単に集計ができる
    • GROUP BYを使ってハンズオンを体験してみる

    SQLのGROUP BYとは?

    先ほどSQLのGROUP BYで「テーブル内でカテゴリー1に当てはまるモノは〇〇個」といったような集計ができるということをお伝えしました。

    しかし、そもそもGROUP BYは集計のために生み出された句ではありません。SQLにおけるGROUP BYの役割とは、SELECT文とセットで使用することで、指定したカラムの値をもとにグループ化をおこなうという役割を持つものなのです。

    指定したカラムに同等の値が入っている場合、1つのカテゴリーとしてまとめることが可能となります。

    この機能を応用することで、先ほど説明した「テーブル内でカテゴリー1に当てはまるモノは〇〇個」のような使い方をすることが可能です。

    言葉だけではイメージがしづらいかと思うので、実際にSQLのGROUP BYを使用した例を見てみましょう。

    前提として、以下のようなテーブルがあるとします。

    バナナとリンゴの在庫がそれぞれ記録されていますが、同じ果物の在庫が別々のレコードに挿入されているため、結局いくつストックがあるかわかりません。

    そこでGROUP BYを使用し、同じ名前の果物のストック数を集計することができます。

    以下が出力結果です。

    このようにSQLのGROUP BYを使用することによって、バナナとリンゴのストック数を集計することに成功しました。

    SQLのGROUP BYを使ってみよう

    では、実際にSQLのGROUP BYを使っていきましょう。こちらではMySQLというデータベースを使用していきます。MySQLはバージョンによって動作が異なる可能性もあるため、以下に今回使用したMySQLのバージョンを確認しておきます。

    準備

    まずはMySQLを使用するための準備をしていきます。

    MySQLのインストール・接続

    まだMySQLをインストールしていない場合は、インストールしましょう。

    MySQLのインストールが終了したら、接続します。

    データベースの作成

    次にデータベースをMySQL上に作成し、使用するデータベースを指定しましょう。

    これでMySQLを使用する準備は完了しました。

    テーブルの作成

    それでは、実際にハンズオンで使用するテーブルを作成していきます。先ほどの例よりも少し複雑なテーブルを作成し、GROUP BYの効果を実感してみましょう。

    テーブル「 importProduct」は以下のような状態です。

    レコードの作成

    テーブルにレコードを挿入していきましょう。

    これでテーブルは以下の状態になりました。

    現在のままでは、重複した商品名がバラバラになっており、どれだけの値段になったのかがわかりません。そこでGROUP BYを使って集計してみましょう。

    GROUP BYで集計に挑戦

    まずはGROUP BYを使って、値段の集計に挑戦してみてましょう。

    以下が出力結果です。

    いかがでしょうか。このようにGROUP BYを利用することによって、それぞれの商品の合計価格が簡単にわかりました。

    まとめ

    今回の記事ではSQLのGROUP BYとは何かについて詳しく解説をしつつ、SQLのGROUP BYを使ったハンズオンを実施しました。

    テーブル内のデータを集計したいときに便利なGROUP BY。集計することを前提にテーブル設計をするのであれば、集計用のカテゴリをカラム内に用意しておくと良いでしょう。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE