ホームページ >データベース >mysql チュートリアル >条件付きSQLクエリを使用してジョブの優先順位をカウントするにはどうすればよいですか?
優先度分析に条件付きカウント クエリを使用する
データ分析では、カテゴリデータから情報を抽出するために条件付きカウントが必要になることがよくあります。 「jobId」、「jobName」、および「Priority」列を含むテーブルについて考えます。「Priority」の範囲は 1 ~ 5 です。各優先レベルの行数をカウントするクエリを作成する必要があります。
CASE ステートメントを使用したクエリ:
次のクエリは 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>
CASE ステートメントは、行ごとに、「Priority」値が指定された数値と一致するかどうかをチェックします (たとえば、Priority1 は 1)。この式は、true の場合は 1 を返し、false の場合は 0 を返します。次に、SUM 関数は、各グループ (「jobId」と「jobName」によって決定される) に対してこれらの値を集計します。
ジョブ ID とジョブ名を削除します:
結果に「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 サイトの他の関連記事を参照してください。