SQLスクリプト:月連続で毎月の消費

例:月の消費に近い特定のメンバースーパーマーケットの顧客

月の消費はほぼ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で割って、」結果のデータ、エラーが発生します。

要約すると、我々は仕事中に発生したすべての個人的な状況にあり、不備場合、してくださいアドバイス、ありがとうございました。

 

リリース3元の記事 ウォンの賞賛0 ビュー2635

おすすめ

転載: blog.csdn.net/qq_32942215/article/details/104950737