SQL countの条件は引数内に記述できる 単クエリで複数の件数を取得する方法
  • facebookページ
  • twitterページ
  • 2020.03.23

    SQL countの条件は引数内に記述できる 単クエリで複数の件数を取得する方法

    SQLのcount関数に条件指定する方法についてまとめています。

    countはレコード数を取得する関数ですが、引数内で条件を指定し、1クエリで複数条件の件数を取得することが可能です。

    count関数の引数に条件指定するサンプル

    MySQLとPostgreSQLでは、count関数に3値論理式を指定することで、条件に合致したレコードのみをカウントすることが可能です。

    テーブル「table」のカラム col1の内容が「Y」のレコードのみを数えるSQLです。count関数は、NULLではないレコードの件数を数えます。

    col1=’Y’の場合は、TRUE or null=TRUE、’Y’以外の場合は、False or null=NULLとなるため、col1=’Y’の件数がカウントされます。count(col1=’Y’)のみだと、NULLではない全件のカウントを取得します。なお、count(*)は、NULLではない全件をカウントするための特殊な指定方法です。

    MySQLでcountに条件式を指定する

    実際に、MySQLで条件指定したcount関数を使ってSQLを実行してみましょう。

    MySQL :: MySQL 5.6 リファレンスマニュアル :: 3.3.4.8 行のカウント

    PostgreSQLでcount関数に条件を指定する

    PostgreSQLでも、同様にcount()内に条件式を指定することが可能です。

    下記のSQLは、actorテーブルから、first_nameカラムの1文字目がNで始まるレコードの件数を取得します。

    関連)Postgresqlの集約関数

    なお、count関数に渡す条件は、where文で書き換えが可能です。

    特に理由がなければ、可読性を考えて条件はwhere句で指定するのが良いでしょう。単一のSQLで複数の条件のレコードをカウントする場合などは、count関数の引数に条件式を指定するとすっきり記述することが可能です。

    まとめ

    ポテパンダの一言メモ
    • count関数の引数に条件式の指定が可能。
    • count関数の条件式は、whereの条件指定に書き換えることができる。
    • 1つのSQLで複数条件のcountの値を取得する場合は、count関数の条件式が役立つ。


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

    この記事をシェア

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









    ABOUT US

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

    READ MORE