例:月の消費に近い特定のメンバースーパーマーケットの顧客
月の消費はほぼSQL:
#不連続月
1:月平均消費量に近い#月------------------------------- 3分の2020 / 13午後6時58分51秒---------
SELECT a.user_code#クライアントは、コーディング
、12月にa0.Consume_money第19位
月に、a1.Consume_money#20
、#a2.Consume_money 2月20日
、(a0.Consume_money + a1.Consume_money + a2.Consume_money) avg_Consume_money#など/ 3 月平均の消費に近い月
#特定のスーパーマーケットの顧客テーブルはtmp_user_xxx_chaoshiから
(から選択user_code、Consume_moneyに参加左 op_timeは201912を= tmp_user_xxx_chaoshi_xiaofei_2019)A0 a0.user_code = a.user_code#XXスーパーマーケットの顧客消費テーブルに
(から選択user_code、Consume_moneyに参加左 a1.user_code = a.user_code#上のA1 op_timeは202001 = tmp_user_xxx_chaoshi_xiaofei_2020) XXスーパー顧客消費テーブル
(から選択user_code、Consume_moneyに参加左 a2.user_code = a.user_code#上のA2 op_timeは202002 = tmp_user_xxx_chaoshi_xiaofei_2020) 特定のスーパー顧客消費テーブル
会員クライアントのa.if_huiyuan_user = 1つの#は、
ランダムに選択されたデータ4#10を制限する
方法二つ。ほぼ3月18日------------------------------- 2020年3月13日の#特定のメンバーのスーパーマーケットの顧客の月平均消費:58:51 ---------
コーディングSELECT a.user_code#クライアント
12月には第19位、a0.Consume_moneyを
月に、a1.Consume_money#20
、#a2.Consume_money 2月20日
、(合体(a0.Consume_money、0)+ COALESCE(a1.Consume_money、0)+ COALESCE(a2.Consume_money、0))/
(ケースときCOALESCE(a0.Consume_money、0)> 0その後、他。1 + 0エンドケースときCOALESCE(その後、a1.Consume_money、0)> 0 1 他0エンド+
ときCOALESCEケース(a2.Consume_money、0)> 0その後、他。1 + 0エンド
ケースときCOALESCE(a0.Consume_money、0)<= 0とCOALESCE(a1.Consume_money、0)<= 0とCOALESCE(a2.Consume_money、 0)<= 0
その後、他の1 0終了
)の月平均消費量に近いAS avg_Consume_money#月
#特定のスーパーマーケットの顧客テーブルがtmp_user_xxx_chaoshiから
の(選択user_codeに参加左、Consume_money op_timeが上201912)A0を= tmp_user_xxx_chaoshi_xiaofei_2019 a0.user_code = a.user_code位特定のスーパーマーケットの顧客消費テーブル
(から選択user_code、Consume_moneyに参加左 a1.user_code = a.user_code#にop_timeが202001を= tmp_user_xxx_chaoshi_xiaofei_2020)A1 XXスーパーの顧客消費テーブルは
から(選択user_code、Consume_moneyに参加左 tmp_user_xxx_chaoshi_xiaofei_2020場合a2.user_code =上op_time = 202002)A2 a.user_code# XXスーパーマーケットの顧客の消費テーブル
ここa.if_huiyuan_user会員クライアントの1位=
4#10ランダムに選択されたデータを制限します
次のようにデータの結果である(データの唯一の4行を取ります)
結果1 | ||||
顧客コード | 2019年12月 | 2020年1月 | 2020年2月 | 月間平均 |
100056 | 642 | 118 | 428 | 396.00 |
100057 | 929 | 784 | 345 | 686.00 |
100058 | 0 | 199 | 121 | 106.67 |
100059 | 0 | 0 | 900 | 300.00 |
結果 | ||||
顧客コード | 2019年12月 | 2020年1月 | 2020年2月 | 月間平均 |
100056 | 642 | 118 | 428 | 396.00 |
100057 | 929 | 784 | 345 | 686.00 |
100058 | 0 | 199 | 121 | 160.00 |
100059 | 0 | 0 | 900 | 900.00 |
論理的な観点からSQLスクリプト:方法1と方法2は、Aであります
ビューの業績からSQLスクリプト:
2ヶ月のメンバーの事務所の前に2020年1月、100 058と100 059顧客は、その取得するには3月3日通りの結果の和を取ることに加えて、間違っているため、5月1日には、エラーの結果です。
第2の方法は、消費は2020年2月に存在するかどうか、2020年1月、2019年12月に、より多くの顧客を支払うことでないか、1より小さいがある場合、除数は、1でない場合は、除数がゼロです。
以上の結果から、非連続的な月の場合に適した二つの方法。
#月連続で
1:最近の月の月平均消費の#特定のメンバーのスーパーマーケットの顧客------------------------------午後7時03分48秒-------- -2020/3/18
SELECT a.user_code#クライアントは、コーディング
、10月中にa0.Consume_money#19
、#a1.Consume_money 11月19日
、a2.Consume_money#19 12月には
、(a0.Consume_money + a1.Consume_money + a2.Consume_money) / 3 avg_Consume_money#などの最近の月の月平均消費
#特定のスーパーマーケットの顧客テーブルがtmp_user_xxx_chaoshiから
参加左(選択user_code、からConsume_money tmp_user_xxx_chaoshi_xiaofei_2019どこop_time = a0.user_code = a.user_code#XXスーパー顧客消費表に201910)A0が
から、(Consume_moneyを選択user_codeに参加左 op_timeがa1.user_code = a.user_code#に201911)A1を= tmp_user_xxx_chaoshi_xiaofei_2020 XXスーパー顧客消費テーブル
(から選択user_code、Consume_moneyに参加左 a2.user_code = a.user_code#上のA2 op_timeが201912を= tmp_user_xxx_chaoshi_xiaofei_2020) XXスーパーの顧客消費テーブル
a.if_huiyuan_user = 1つの#部材クライアント
限界4#4ランダムに選択されたデータ
方法2:最近の月の月平均消費の#特定のメンバーのスーパーマーケットの顧客------------------------------- 3分の2020 / 18夜7時03分48秒--------
SELECT a.user_code#クライアントは、コーディング
、ケース際a0.op_time = 201910、その後a0.Consume_moneyエンド第19位月に
、a0.op_time = 201910、その後A0場合#11月19日に終了.Consume_money
、= 201910 a0.op_timeが、その後a0.Consume_moneyはケース #19を終了し、12月に
月平均消費近くavg_Consume_money#月として、AVG(a0.Consume_moneyを)
#特定のスーパーマーケットtmp_user_xxx_chaoshiから顧客テーブルが
参加左(から選択user_code、Consume_moneyを tmp_user_xxx_chaoshi_xiaofei_2019ここop_time '201910'と'201912'の間)a0.user_code = a.user_code#でA0 XXスーパー顧客消費テーブル
a.if_huiyuan_user = 1#会員クライアント
限界4# 4つのランダムに選択されたデータ
次のようにデータの結果である(データの唯一の4行を取ります)
結果 | ||||
顧客コード | 2019年10月 | 2019年11月 | 2019年12月 | 月間平均 |
100056 | 754 | 808 | 374 | 645.33 |
100057 | 308 | 189 | 428 | 308.33 |
100058 | 0 | 998 | 876 | 624.67 |
100059 | 0 | 0 | 685 | 228.33 |
結果4 | ||||
顧客コード | 2019年10月 | 2019年11月 | 2019年12月 | 月間平均 |
100056 | 754 | 808 | 374 | 645.33 |
100057 | 308 | 189 | 428 | 308.33 |
100058 | 0 | 998 | 876 | 937.00 |
100059 | 0 | 0 | 685 | 685.00 |
論理的な観点からSQLスクリプトは:方法1及び方法2でもあります
ビューの業績からSQLスクリプト:
; 2019年11月で100 058と100 059顧客は、そう3月3日取得する方法が間違っているの結果の和を取ることに加えて、12月のメンバーによって実行されたため、5月1日には、エラーの結果であります
第二の方法は、顧客の会員に適用するために11ヶ月と12ヶ月を満たしている、出会いは0であり、それは、除外されます自動的にSQLの(非専門的な言語)の機能を決定した平均関数を使用することです、除数は1又は2です。
以上の結果から、連続ケース3月の二つの方法。
要約:実績のある、ビューの点からどちらの場合も、月に連続または非連続月かどうか、「方法1:和を3で割って、」結果のデータ、エラーが発生します。
要約すると、我々は仕事中に発生したすべての個人的な状況にあり、不備場合、してくださいアドバイス、ありがとうございました。