ホームページ > データベース > mysql チュートリアル > MySQL で条件付き集計を使用して「SUM IF」および「COUNT IF」機能を実現するにはどうすればよいですか?

MySQL で条件付き集計を使用して「SUM IF」および「COUNT IF」機能を実現するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-13 14:32:02
オリジナル
447 人が閲覧しました

How to Achieve 'SUM IF' and 'COUNT IF' Functionality in MySQL with Conditional Aggregation?

MySQL 条件付き集計: 'SUM IF' および 'COUNT IF' 機能のロックを解除する

MySQL で、合計や合計などの条件付き集計を実行します。特定の条件に基づいて値をカウントするには、CASE ステートメントを使用します。これにより、集計操作に基準を柔軟に適用できます。

次のシナリオを考えてみましょう。列「hour」と「kind」(値 1、2、または 3 を保持できる) を持つテーブルがあるとします。行数をカウントし、合計時間を計算し、「kind」が 1 に等しい行数を決定したいとします。

最初に、次のクエリを試してみます。

SELECT count(id), SUM(hour) as totHour, SUM( IF ( kind = 1, 1, 0 ) ) as countKindOne
ログイン後にコピー

または

SELECT count(id), SUM(hour) as totHour, COUNT( IF ( kind = 1 ) ) as countKindOne
ログイン後にコピー

ただし、これらのクエリはエラーになる可能性があります。これを解決するには、集計操作内で CASE ステートメントを利用する必要があります。

SELECT count(id), 
    SUM(hour) as totHour, 
    SUM(case when kind = 1 then 1 else 0 end) as countKindOne
ログイン後にコピー

この CASE ステートメントでは、「kind」列の値が 1 の場合は 1 を返し、それ以外の場合は 1 を返すように指定します。 0 を返します。これにより、「kind」が 1 に等しい行を条件付きでカウントできるようになります。

以上がMySQL で条件付き集計を使用して「SUM IF」および「COUNT IF」機能を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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