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 サイトの他の関連記事を参照してください。