ホームページ > データベース > mysql チュートリアル > SQL で優先度別に条件付き行を効率的にカウントするにはどうすればよいですか?

SQL で優先度別に条件付き行を効率的にカウントするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-10 07:39:45
オリジナル
619 人が閲覧しました

How to Efficiently Count Conditional Rows by Priority in SQL?

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>
ログイン後にコピー
このクエリは基本的に SUM() 関数を使用して、各優先レベルの行数をカウントします。ただし、CASE ステートメントを使用して、特定の優先条件を満たさない行を除外することもできます。結果は、条件数を表す追加フィールドを含むテーブルになります。

結果に jobID と JobName ではなくジョブ数のみを含めるには、これらの列を SELECT ステートメントから削除し、GROUP BY 句を削除します。

以上がSQL で優先度別に条件付き行を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート