ホームページ >データベース >mysql チュートリアル >COUNT() 関数内で特定の条件を満たす行をカウントするにはどうすればよいですか?

COUNT() 関数内で特定の条件を満たす行をカウントするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-11 06:40:42720ブラウズ

How Can I Count Rows Meeting Specific Conditions Within a COUNT() Function?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。