ホームページ  >  記事  >  データベース  >  「SUM IF」と「COUNT IF」を使用せずに MySQL で条件付き集計を実行するにはどうすればよいですか?

「SUM IF」と「COUNT IF」を使用せずに MySQL で条件付き集計を実行するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-21 00:52:12241ブラウズ

How to Perform Conditional Aggregation in MySQL without 'SUM IF' and 'COUNT IF'?

MySQL: 'SUM IF' と 'COUNT IF' を使用した条件付き集計の代替メソッド

次のシナリオを考えてみましょう: テーブルがあります。 「hour」と「kind」という名前の列があり、条件に基づいて計算を実行したいと考えています。たとえば、「kind」列が 1 に等しい行の数を数えたり、「kind」列が 2 である行のみの「hour」列を合計したりすることができます。

MySQL では、 「SUM IF」または「COUNT IF」を使用する構文は直接サポートされていません。代わりに、CASE ステートメントを使用して条件付き集計を実現できます。

SELECT 
    count(id), 
    SUM(hour) as totHour, 
    SUM(case when kind = 1 then 1 else 0 end) as countKindOne
FROM table_name;

このクエリは行の合計数をカウントし、すべての行の「hour」列を合計し、「」が含まれる行の数をカウントします。 kind' 列は 1 に等しいです。

MySQL の条件付き集計の詳細については、次のリソースを参照してください:

  • MySQL ドキュメント: [CASE Functions](https:// dev.mysql.com/doc/refman/8.0/en/case-statement.html)
  • スタック オーバーフロー トピック: [MySQL SUM IF フィールド b = フィールド a](https://stackoverflow.com/questions) /2200315/mysql-sum-if-field-b-field-a)

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

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