ホームページ >データベース >mysql チュートリアル >SQL で条件付き列の値をカウントする方法: 優先順位ベースの例?

SQL で条件付き列の値をカウントする方法: 優先順位ベースの例?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-10 06:56:43353ブラウズ

How to Count Conditional Column Values in SQL:  A Priority-Based Example?

SQL 条件付き列数

次の構造を持つ「Jobs」というテーブルについて考えてみましょう:

<code>jobId, jobName, Priority</code>

ここで、「優先度」は 1 から 5 までの整数です。

問題ステートメント:

「ジョブ」テーブル内の各優先レベル (1 ~ 5) の行数をカウントするクエリを作成する必要があります。クエリは、これらの数を表す、それぞれ「Priority1」から「Priority5」という名前の列を返す必要があります。

解決策:

これを行うには、次の 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 ステートメントは、各行の「優先度」列を評価します。
  • 「優先度」が指定された値 (1、2、3、4、または 5) と等しい場合、カウントに 1 が加えられます。
  • 「優先度」が指定された値と等しくない場合、0 が与えられます。
  • SUM 関数は、優先レベルごとにこれらのカウントを集計します。
  • GROUP BY 句は、結果を「jobId」と「jobName」でグループ化します (これらの列を結果に含めると仮定します)。

注: 「jobId」と「jobName」を除外したい場合は、SELECT 句と GROUP BY 句からそれらを削除するだけです。

以上がSQL で条件付き列の値をカウントする方法: 優先順位ベースの例?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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