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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-16 07:32:02663ブラウズ

How to Perform Conditional Aggregation with SUM and COUNT in MySQL?

MySQL での SUM と COUNT による条件付き集計

リレーショナル データベースを使用する場合、多くの場合、データに基づいて集計するために条件付き集計を実行する必要があります。特定の基準で。 MySQL では、IF() ステートメントや CASE ステートメントの使用など、これを実現するいくつかの方法が提供されています。

IF() ステートメントの使用

この例では、次のように試みました。 IF() ステートメントを使用して、種類が 1 に等しい行数を計算します。ただし、MySQL では、集計関数での IF() ステートメントの使用は許可されていません。 SUM や COUNT など。これは、IF() がスカラー値を返すのに対し、集計関数は入力として列式を必要とするためです。

CASE ステートメントの使用

条件付き集計を実行するには、次のことができます。 CASE ステートメントを使用します。 CASE ステートメントを使用すると、複数の条件を指定し、それらの条件に基づいて異なる値を返すことができます。

次のクエリでは、CASE ステートメントを使用して、種類が 1 に等しい行数を計算します。

SELECT
    COUNT(id),
    SUM(hour) AS totHour,
    SUM(CASE
        WHEN kind = 1 THEN 1
        ELSE 0
    END) AS countKindOne
FROM your_table;

このクエリ内:

  • CASE ステートメントは、条件 kind = を評価するために使用されます。 1.
  • 条件が TRUE の場合は 1 を返します。
  • 条件が FALSE の場合は 0 を返します。
  • CASE ステートメントの結果は次に渡されます。 SUM() 集計関数。

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

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