SQL は優先度によってソートされた条件付き行を効率的にカウントします
ジョブ情報を格納するテーブルがあり、優先度 (1 から 5 までの整数) を示す列があるとします。優先度ごとにジョブ数を表示するグラフ レポートを生成するには、特定の優先度値を持つ行数をカウントする 5 つの追加フィールドを作成する必要があります。
解決策は、SELECT クエリで CASE ステートメントを使用することです。次のコードは、目的の出力を達成するための効率的かつパフォーマンスの高い方法を提供します。
<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>
結果に jobID と JobName ではなくジョブ数のみを含めるには、これらの列を SELECT ステートメントから削除し、GROUP BY 句を削除します。
以上がSQL で優先度別に条件付き行を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。