SQL 文を使用してデータを収集する場合の sum 関数と count 関数の if 判定条件の使用法の説明

SQL 文を使用してデータを収集する場合の sum 関数と count 関数の if 判定条件の使用法の説明

まず、例を挙げてみましょう(読みたくない場合は、以下の要約だけ読んでください)。

order_type: 注文タイプ open_id: ユーザー固有識別子 SELECT
    date(create_time) AS '今日の日付'、
    sum(real_price) AS 'その日の総売上'、
sum 関数では、if 判定条件が使用されます。
和(
IF (注文タイプ = 0、実価格、0)
) 「収入をその日に支払う」
和(
IF (注文タイプ = 1、実価格、0)
)「その日の報酬収入」として、
}
    count(DISTINCT open_id) AS '有料顧客の総数'、
count 関数は if 条件を使用します。
カウント(
DISTINCT open_id、
IF (注文タイプ = 0, TRUE, NULL)
) AS '受取人数'、
カウント(
DISTINCT open_id、
IF (注文タイプ = 1、TRUE、NULL)
) 「報酬の数」として、
}
    count(id) AS '支払済み注文の合計数'、
count 関数は if 条件を使用します。
カウント(
異なるID、
IF (注文タイプ = 0, TRUE, NULL)
)AS '支払指示数'、
カウント(
異なるID、
IF (注文タイプ = 1、TRUE、NULL)
) AS '報酬注文数'
}
から
注文
どこ
'実価格' != 1
AND 'ステータス' != 0
日付によるグループ化(create_time)

クエリ結果: 報酬注文と支払い注文のデータ統計を区別するために、データをより明確にします。

まとめ:

sum関数のif判定条件の形式は、sum(if(条件, 列値, 0))です。

注: sum は合計関数です。条件が true の場合、列の値 (フィールド名) が合計、つまり累積されます。条件が false の場合、合計は 0 になります (もちろん、0 のままです)

1. 単一条件判定形式、sum(if(条件フィールド名 = 値, 合計するフィールド名, 0))

2. 複数条件判定形式、sum(if(条件フィールド名>値 AND 条件フィールド名>値 AND 条件フィールド名=値,1,0))

注: 複数条件判定形式の全体的な意味は、条件を満たすデータの合計数を計算することです。条件が満たされると、データの合計数が 1 増加します。つまり、1 は 1 の累積を意味します。

3. 一般的なケース when format, sum(case when condition field name in (smaller range value, larger range value) then [合計を計算するフィールド名] else 0 end)

count 関数で使用される if 条件付き書式は次のとおりです。

1. 合計数をカウントします。count(if(条件フィールド名 = 値, true, null))

2. 重複値の合計数をカウントします。count(カウントするDISTINCTフィールド名、if(条件フィールド名 = 値、true、null))

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • MYSQL の SUM フィールドの条件付き統計を計算するために IF 関数 (case) を使用する際の問題
  • MySQL の count() と sum() の違いの詳細な紹介
  • MySQL sum(if()) と count(if()) の使用方法

<<:  Linux で PCIe のバージョンと速度を確認する方法

>>:  NodeJSのモジュール性に関する詳細な説明

推薦する

Ubuntu 14.04 で QT5 をインストール、設定、アンインストールするための詳細な手順

1. 以前 QT5.13 バージョンをダウンロードしましたが、インストール後、Qtcreator を...

Linux デュアル ネットワーク カード バインディング スクリプト メソッドの例

Linux の操作と構成作業では、デュアル ネットワーク カードのバインディングがよく使用されます。...

MySQL パーティションテーブルの制限と制約の詳細な説明

ビルドを無効にするパーティション式では、次の構成はサポートされません。ストアドプロシージャ、ストアド...

CentOS7 で docker を使用して Apollo 構成センターをデプロイする実装

Apollo オープンソース アドレス: https://github.com/ctripcorp/...

JavaScriptのアンチシェイクとスロットリングとは

目次1. 関数デバウンス1. 画像安定化とは何ですか? 2. 関数のスロットリング2.1 タイマーの...

HttpsページでBaiduシェアを使用するためのソリューション

サイト全体で https アクセスを有効にしてから、共有コードが利用できなくなり、有効になっていた小...

Vueオプションの詳細な説明

目次1. オプションとは何ですか? 2. 含まれる属性3. エントリー属性エルデータ方法コンポーネン...

Vueが学生管理機能を実装

この記事では、学生管理を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は次の...

MySQL はどのようにしてマスターとスレーブの同期を実現するのでしょうか?

マスタースレーブ同期 (マスタースレーブレプリケーションとも呼ばれる) は、マスタースレーブデータの...

nginx 設定ファイルパスとリソースファイルパスを表示する方法

nginx 設定ファイルのパスを表示する nginx -t 経由nginx -t コマンドの本来の機...

SpringBoot プロジェクトの Docker 環境を実行するときに発生する無限再起動問題の詳細な説明

もしかしたら私の考え方が間違っていたのかもしれないし、問題の説明が少し乱雑だったのかもしれないが、こ...

WeChatミニプログラムの開発をスピードアップするためのヒント

1. app.jsonを使用してページを作成する私たちの通常の開発習慣によれば、新しいページを作成す...

Vue3 における非親子コンポーネントの値転送の詳細な説明

目次アプリ.vueサブ1.vueサブ2.vue要約する vue2 における非親子コンポーネントの値の...

検証コード干渉を実装する js (静的)

この記事では、検証コード干渉を実装するためのjsの具体的なコードを参考までに共有します。具体的な内容...

Vue3 がコンポーネント通信に mitt を使用する手順

目次1. インストール2. プロジェクトにインポートしてマウントする3. 使用Vue2.x はコンポ...