ホームページ >データベース >mysql チュートリアル >ジョブの優先順位をカウントし、チャートの準備ができたデータを生成するにはどうすればよいですか?
列ごとの条件付きカウント
問題の説明:
列 jobId
、jobName
、および Priority
を含むテーブルがあるとします。Priority
は 1 から 5 までの整数です。目標は、特定の Priority
値を持つ行数をカウントするクエリを生成し、その結果をグラフ レポートの作成に適した形式で表示することです。
解決策:
望ましい結果を得るには、条件式と集計関数を組み合わせて使用できます。
<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
値をチェックし、条件が true の場合は値 1 を、そうでない場合は 0 を割り当てます。これらの値は、jobID
と JobName
の組み合わせごとに合計されます。
GROUP BY
句は、結果が jobID
と JobName
の一意の値によってグループ化されることを保証し、各ジョブ数の内訳を提供します。
このように結果を書式設定すると、結果をグラフ レポートに簡単に埋め込んで、さまざまなジョブの Priority
値の分布を視覚化できます。
以上がジョブの優先順位をカウントし、チャートの準備ができたデータを生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。