ホームページ >データベース >mysql チュートリアル >COUNT() 関数内で特定の条件を満たす行をカウントするにはどうすればよいですか?
COUNT() 関数内の条件付きカウント
COUNT()
関数に条件を直接組み込むことができます。 これは、単一の SQL クエリ内でさまざまな基準を満たす行をカウントする必要がある場合に特に便利で、複数のクエリやサブクエリの必要性を回避できます。 たとえば、単一の SELECT
ステートメント内の「マネージャー」と「従業員」の数を数えます。
重要なのは、CASE
関数内で COUNT()
式を使用することです。 COUNT()
は、NULL 以外の値のみをカウントします。 したがって:
<code class="language-sql">SELECT COUNT(CASE WHEN Position = 'Manager' THEN 1 ELSE NULL END) AS ManagerCount FROM ...</code>
これは、Position
が「Manager」である行のみをカウントします。 ELSE NULL
により、条件を満たさない行はカウントされなくなります。
または、SUM()
:
<code class="language-sql">SELECT SUM(CASE WHEN Position = 'Manager' THEN 1 ELSE 0 END) AS ManagerCount FROM ...</code>
これでも同じ結果が得られます。 SUM()
は、「マネージャー」ごとに 1 を追加し、その他のすべての場合は 0 を追加します。 一部のデータベース システムでは、このアプローチの方が若干効率的です。 どちらの方法でも、個別の WHERE
句が必要ないため、複数のカテゴリを同時にカウントするのに最適です。
以上がCOUNT() 関数内で特定の条件を満たす行をカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。