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

推薦する

MySQL における TIMESTAMPDIFF ケースの詳細な説明

1.構文TIMESTAMPDIFF(unit,begin,end); 単位に従って時間差を返します。...

CSSアニメーションがJSによってブロックされるかどうかについての簡単な議論

CSS のアニメーション部分は JS によってブロックされますが、transform のアニメーショ...

MySQL COUNT関数の使用と最適化

目次COUNT 関数は何をするのですか? MyISAMの「魔法」シンプルなCOUNT最適化近似値を使...

CSSレコードテキストアイコン配置のいくつかのソリューション

開発中に画像とテキストが 1 行に表示されることはよくあります。2 つのインライン要素を揃えるのは通...

ウェブ開発者やデザイナーにとって欠かせないオンラインウェブツールとアプリケーション

これまでの記事で、フロントエンド開発者にとって必須のツール、スクリプト、リソースのコレクションを紹介...

シンプルなウェブ計算機を実装するJavaScript

背景私は新しいプロジェクト チームに配属されたので、プロジェクトでは js を使用する必要があります...

スーパーバイザーによるDockerfileのマルチサービスイメージパッケージ操作

Dockerfileの作成yumソースを設定する cd /tmp/docker vim Docker...

JS ES6 非同期ソリューション

目次最初にコールバック関数を使用するes6 非同期処理モデルこの非同期モデルに合わせたAPI: pr...

Docker nginx + https サブドメイン設定の詳細なチュートリアル

今日はたまたま友人のサーバーの移転を手伝うことになり、サーバーの基本的な設備の設定を行ったのですが、...

MySQL でのトランザクションの使用方法

基礎トランザクションは、SQL ステートメントのグループに対するアトミック操作です。つまり、グループ...

クールなページング効果を実現するネイティブJS

この記事では、次のような効果を持つ JS ページング効果の例を紹介します。クールだと思いませんか? ...

vue3 のさまざまな構文形式を比較したサンプルコード

デフォルトのテンプレートメソッドはvue2に似ており、コンポーネント内のセットアップ関数を使用します...

携帯電話番号の真ん中の4桁を隠すMySQL SQL文の方法

最初のクエリ テーブル構造 (sys_users): sys_users から * を選択します。最...

ドメイン名を指定されたポートに転送するようにNginxを設定する方法

/usr/local/nginx/conf と入力する sudo cd /usr/local/ngi...

MySQL の null 可能フィールドは NULL に設定する必要がありますか、それとも NOT NULL に設定する必要がありますか?

MySQL を頻繁に使用する人は、次のような状況に遭遇する可能性があります。 1. フィールド タ...