ホームページ >データベース >mysql チュートリアル >SQL列の条件値を数えるにはどうすればよいですか?

SQL列の条件値を数えるにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-09 22:52:471042ブラウズ

How to Count Conditional Values in a SQL Column?

SQL列の統計条件値

1 から 5 までの整数値を含む「Priority」という列があるとします。各優先度の値の数を示すグラフを生成するとします。たとえば、「Priority1」は「Priority」値が 1 の行の数をカウントし、「Priority2」は「Priority」値が 2 の行の数をカウントする、というようになります。

解決策:

これを行うには、条件付き集計関数を含む SQL クエリを使用できます。

<code class="language-sql">SELECT 
    jobID, JobName,
    SUM(CASE WHEN Priority = 1 THEN 1 ELSE 0 END) AS priority1,
    SUM(CASE WHEN Priority = 2 THEN 1 ELSE 0 END) AS priority2,
    SUM(CASE WHEN Priority = 3 THEN 1 ELSE 0 END) AS priority3,
    SUM(CASE WHEN Priority = 4 THEN 1 ELSE 0 END) AS priority4,
    SUM(CASE WHEN Priority = 5 THEN 1 ELSE 0 END) AS priority5
FROM
    Jobs
GROUP BY 
    jobID, JobName;</code>

このクエリは条件付き集計を使用して、各優先度値の行数をカウントします。 CASE 式は、Priority の値をチェックし、必要な優先度の値と一致する場合は 1 を返し、そうでない場合は 0 を返します。 SUM 関数はこれらの値を累積して最終的なカウントを生成します。

結果に jobID 列と JobName 列が必要ない場合は、それらを SELECT 句から削除し、GROUP BY 句を削除できます。

<code class="language-sql">SELECT
    SUM(CASE WHEN Priority = 1 THEN 1 ELSE 0 END) AS priority1,
    SUM(CASE WHEN Priority = 2 THEN 1 ELSE 0 END) AS priority2,
    SUM(CASE WHEN Priority = 3 THEN 1 ELSE 0 END) AS priority3,
    SUM(CASE WHEN Priority = 4 THEN 1 ELSE 0 END) AS priority4,
    SUM(CASE WHEN Priority = 5 THEN 1 ELSE 0 END) AS priority5
FROM
    Jobs;</code>

以上がSQL列の条件値を数えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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