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のモジュール性に関する詳細な説明

推薦する

CSS テキスト強調を使用してテキストを強調するための実装コード

1. はじめにこれまで、テキストの特定の部分を強調したい場合、通常は太字にしたり明るい色を使用したり...

フレックスとポジションの互換性の詳細な説明マイニングノート

今日は、すべてのブラウザ (主に IE 9 以上と Chrome) と互換性のある自分のホームページ...

LinkedIn がウェブサイト閲覧を簡素化するためにリニューアル

ビジネス ソーシャル ネットワーキング サイト LinkedIn は最近、ナビゲーション バーとユー...

Kubernetes ポッドオーケストレーションとライフサイクルの詳細な説明

目次K8Sマスター基本アーキテクチャポッドオーケストレーションコンセプトPod オブジェクトのプロパ...

Vue はデータの変更をどのように追跡しますか?

目次背景例誤解 - コールスタックを表示するためにウォッチでブレークポイントを設定する正しいアプロー...

Angularルーティングの基礎の詳細な説明

目次1. ルーティング関連オブジェクト2. ルーティングオブジェクトの場所3. ルーティング構成4....

同じレベルの要素で Position:fixed と margin-top を一緒に使用する場合の CSS の問題

問題の説明CSS を使用して上部の固定効果を実現したいと思います。 margin-top と pos...

CSS+JS で水滴の波紋アニメーション ボタン効果を実装するサンプル コード

コードは次のようになります。 <!DOCTYPE html> <html lang...

uniapp プロジェクトで MQTT を使用する方法

目次1. uniappプラグインマーケットのリファレンスプラグイン2. 具体的な導入プロセス1. m...

HTMLでは、全体的なスタイルとレイアウトを崩さずに、部分的に強制スクロールバーを使用できます。

まずはエフェクト画像を投稿します:全体的なスタイルとレイアウトが崩れないように、スクロール バーがロ...

Docker でローカルにイメージをインポート/保存/読み込み/削除する方法

1. Dockerはローカルイメージをインポートする場合によっては、イメージをローカルまたは別の友人...

新しい要素を作成する3つの方法のまとめ

1つ目: テキスト/HTML経由var txt1="<h1>テキスト。<...

MySQL テーブル分割後にスムーズにオンラインになる方法

目次テーブルの目的例えばテーブル分割戦略すでにオンラインになっている実行中のテーブルはどうすればよい...

Ubuntu 16.04 サーバーで MySQL を設定し、リモート接続を有効にする方法

背景最近、Node.js を勉強しているのですが、クラウド サーバーがあることを思い出しました。しか...