【超便利!】SQLのMAX関数・MIN関数の使い方をわかりやすく解説
  • facebookページ
  • twitterページ
  • 2019.11.15

    【超便利!】SQLのMAX関数・MIN関数の使い方をわかりやすく解説

    テーブルの中で最大値・最小値を求める際に、意外と知られていないのがMAX関数MIN関数です。これまで目視で確認していた数値の最大値・最小値をSQL文1つで求められるようになります。

    本記事では、SQL文のMAX関数・MIN関数の使い方や実践的な使用例をご紹介していきましょう。

    SQL文のMAX関数・MIN関数とは?

    はじめにSQL文のMAX関数とMIN関数の使用方法についてご説明をしていきましょう。

    SQL文 MAX関数

    SQL文のMAX関数とはデータベース上に作成されたテーブルの中から、指定したグループの最大値が含まれるレコードを取得する関数のことです。

    例えば、商品の名前と値段が登録されているテーブルから最も値段の高い商品を取得する際などにMAX関数を使用すると、簡単に意図した行を取得することができます。

    SQL文のMAX関数の構文は以下のような形式です。

    構文だけでは具体的な使用方法が分かりづらいかもしれませんので、実際の使用例を見てみましょう。まずはMySQLを用いてテーブルを作成してみましょう。

    これで以下のようなテーブルが出来上がったはずです。

    この中から、値段が最も高いレコードを抜き出します。

    先ほどのfoodsテーブルから、最も数値の大きい500を抜き出しています。これがSQLのMAX関数の使い方です。

    SQL文 MIN関数

    SQL文のMIN関数とはデータベース上に作成されたテーブルの中から、指定したグループの最小値が含まれるレコードを取得する関数のことです。

    例えば、商品の名前と値段が登録されているテーブルから最も値段の高い商品を取得する際などにMAX関数を使用すると、簡単に意図した行を取得することができます。

    SQL文のMAX関数の構文は以下のような形式です。

    MIN関数も構文だけでは具体的な使用方法が分かりづらいかもしれませんので、実際の使用例を見てみましょう。先ほどのMySQLを用いて説明します。

    先ほどのfoodsテーブルから、最も数値の小さい100を抜き出しています。これがSQLのMIN関数の使い方です。

    MAX関数・MIN関数を使用しない場合は?

    MAX関数・MIN関数を使用しない場合には、テーブル内のデータをソートする「ORDER BY」という機能を用いることになります。

    ただし「ORDER BY」は、並び替えの機能しか持っていないため、単体で使用する場合には「最大値を抜き出す」「最小値を抜き出す」といったMAX関数・MIN関数のような役割を果たすことができません。

    ORDER BYで昇順並び替え

    SQL文 MAX関数・MIN関数の実践的な使用例

    最後にSQL文 MAX関数・MIN関数の実践的な使用例を解説していきます。はじめにご紹介した例はシンプルな使い方でしたが、以下のような複雑な使用方法もあります。

    最大値と最小値を同時に取得

    SQL文のMAX関数とMIN関数を用いて、最大値と最小値を同時に取得する方法をご紹介します。

    見た通り、MAX関数の構文とMIN関数の構文を「,(コンマ)」で区切ることで、同時に最大値・最小値を取得することができています。

    最大値・最小値と共に他のカラムを取得

    最初にご紹介した例では、foodsテーブルのpriceの最大値・最小値だけが「LargestPrice」「SmallestPrice」というカラムに登録されました。しかし、実際に使用する際にはfoodsテーブルのnameとpriceをセットで登録したいという場合が多いのではないでしょうか。

    こちらでは、最大値のpriceとそれに伴うnameカラム、最小値のpriceとそれに伴うnameカラムを取得する方法をご紹介します。

    最大値のpriceとそれに伴うnameカラムの取得

    最小値のpriceとそれに伴うnameカラムの取得

    最初に紹介した例と比べると、MAX関数・MIN関数の構文が異なります。しかし、SQL文を紐解いていくと、「WHERE」で条件付けを行っているだけだということが分かるはずです。

    まとめ

    本記事では、SQL文のMAX関数・MIN関数の使い方や実践的な使用例をご紹介していきました。ORDER BYなどを使用するよりもスマートに最大値・最小値を取得できるのが魅力的ですね。これを機に、MAX関数・MIN関数をどんどん使用していきましょう!

    【関連記事】
    ▶︎SQL order byでソート指定するサンプルコード集 指定のレコードだけ先頭に並べるには?
    ▶︎【実践編】SQLのIF構文で関数を作ってみよう!基礎的な使い方も解説!
    ▶︎SQL having 集約関数の絞り込み whereよりもレスポンスが遅い理由とは?



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

    この記事をシェア

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









    ABOUT US

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

    READ MORE