ホームページ >データベース >mysql チュートリアル >SQL列の条件値を数えるにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。