ck 4 years ago
parent
commit
6e73c4c4ef
1 changed files with 88 additions and 67 deletions
  1. 88 67
      app/etl/dw/dw_channel_daily.py

+ 88 - 67
app/etl/dw/dw_channel_daily.py

@@ -174,72 +174,72 @@ from order where reg_time>'2019-03-18 00:00:00' group by toDate(formatDateTime(r
 
 def dw_channel_amount_daily():
     sql="""
- select toDate(formatDateTime(reg_time,'%Y-%m-%d')) as dt,
+  select toDate(formatDateTime(reg_time,'%Y-%m-%d')) as dt,
    channel as channel,
            sum(if(subtractDays(date, 1)>=toDate(reg_time),0,amount)) as da1,
-           sum(if(subtractDays(date, 2)>=toDate(reg_time),0,amount)) as da2,
-           sum(if(subtractDays(date, 3)>=toDate(reg_time),0,amount)) as da3,
-           sum(if(subtractDays(date, 4)>=toDate(reg_time),0,amount)) as da4,
-           sum(if(subtractDays(date, 5)>=toDate(reg_time),0,amount)) as da5,
-           sum(if(subtractDays(date, 6)>=toDate(reg_time),0,amount)) as da6,
-           sum(if(subtractDays(date, 7)>=toDate(reg_time),0,amount)) as da7,
-           sum(if(subtractDays(date, 8)>=toDate(reg_time),0,amount)) as da8,
-           sum(if(subtractDays(date, 9)>=toDate(reg_time),0,amount)) as da9,
-           sum(if(subtractDays(date, 10)>=toDate(reg_time),0,amount)) as da10,
-           sum(if(subtractDays(date, 11)>=toDate(reg_time),0,amount)) as da11,
-           sum(if(subtractDays(date, 12)>=toDate(reg_time),0,amount)) as da12,
-           sum(if(subtractDays(date, 13)>=toDate(reg_time),0,amount)) as da13,
-           sum(if(subtractDays(date, 14)>=toDate(reg_time),0,amount)) as da14,
-           sum(if(subtractDays(date, 15)>=toDate(reg_time),0,amount)) as da15,
-           sum(if(subtractDays(date, 16)>=toDate(reg_time),0,amount)) as da16,
-           sum(if(subtractDays(date, 17)>=toDate(reg_time),0,amount)) as da17,
-           sum(if(subtractDays(date, 18)>=toDate(reg_time),0,amount)) as da18,
-           sum(if(subtractDays(date, 19)>=toDate(reg_time),0,amount)) as da19,
-           sum(if(subtractDays(date, 20)>=toDate(reg_time),0,amount)) as da20,
-           sum(if(subtractDays(date, 21)>=toDate(reg_time),0,amount)) as da21,
-           sum(if(subtractDays(date, 22)>=toDate(reg_time),0,amount)) as da22,
-           sum(if(subtractDays(date, 23)>=toDate(reg_time),0,amount)) as da23,
-           sum(if(subtractDays(date, 24)>=toDate(reg_time),0,amount)) as da24,
-           sum(if(subtractDays(date, 25)>=toDate(reg_time),0,amount)) as da25,
-           sum(if(subtractDays(date, 26)>=toDate(reg_time),0,amount)) as da26,
-           sum(if(subtractDays(date, 27)>=toDate(reg_time),0,amount)) as da27,
-           sum(if(subtractDays(date, 28)>=toDate(reg_time),0,amount)) as da28,
-           sum(if(subtractDays(date, 29)>=toDate(reg_time),0,amount)) as da29,
-           sum(if(subtractDays(date, 30)>=toDate(reg_time),0,amount)) as da30,
-           sum(if(subtractDays(date, 31)>=toDate(reg_time),0,amount)) as da31,
-           sum(if(subtractDays(date, 32)>=toDate(reg_time),0,amount)) as da32,
-           sum(if(subtractDays(date, 33)>=toDate(reg_time),0,amount)) as da33,
-           sum(if(subtractDays(date, 34)>=toDate(reg_time),0,amount)) as da34,
-           sum(if(subtractDays(date, 35)>=toDate(reg_time),0,amount)) as da35,
-           sum(if(subtractDays(date, 36)>=toDate(reg_time),0,amount)) as da36,
-           sum(if(subtractDays(date, 37)>=toDate(reg_time),0,amount)) as da37,
-           sum(if(subtractDays(date, 38)>=toDate(reg_time),0,amount)) as da38,
-           sum(if(subtractDays(date, 39)>=toDate(reg_time),0,amount)) as da39,
-           sum(if(subtractDays(date, 40)>=toDate(reg_time),0,amount)) as da40,
-           sum(if(subtractDays(date, 41)>=toDate(reg_time),0,amount)) as da41,
-           sum(if(subtractDays(date, 42)>=toDate(reg_time),0,amount)) as da42,
-           sum(if(subtractDays(date, 43)>=toDate(reg_time),0,amount)) as da43,
-           sum(if(subtractDays(date, 44)>=toDate(reg_time),0,amount)) as da44,
-           sum(if(subtractDays(date, 45)>=toDate(reg_time),0,amount)) as da45,
-           sum(if(subtractDays(date, 46)>=toDate(reg_time),0,amount)) as da46,
-           sum(if(subtractDays(date, 47)>=toDate(reg_time),0,amount)) as da47,
-           sum(if(subtractDays(date, 48)>=toDate(reg_time),0,amount)) as da48,
-           sum(if(subtractDays(date, 49)>=toDate(reg_time),0,amount)) as da49,
-           sum(if(subtractDays(date, 50)>=toDate(reg_time),0,amount)) as da50,
-           sum(if(subtractDays(date, 51)>=toDate(reg_time),0,amount)) as da51,
-           sum(if(subtractDays(date, 52)>=toDate(reg_time),0,amount)) as da52,
-           sum(if(subtractDays(date, 53)>=toDate(reg_time),0,amount)) as da53,
-           sum(if(subtractDays(date, 54)>=toDate(reg_time),0,amount)) as da54,
-           sum(if(subtractDays(date, 55)>=toDate(reg_time),0,amount)) as da55,
-           sum(if(subtractDays(date, 56)>=toDate(reg_time),0,amount)) as da56,
-           sum(if(subtractDays(date, 57)>=toDate(reg_time),0,amount)) as da57,
-           sum(if(subtractDays(date, 58)>=toDate(reg_time),0,amount)) as da58,
-           sum(if(subtractDays(date, 59)>=toDate(reg_time),0,amount)) as da59,
-           sum(if(subtractDays(date, 60)>=toDate(reg_time),0,amount)) as da60,
-           sum(if(subtractDays(date, 90)>=toDate(reg_time),0,amount)) as dm3,
-           sum(if(subtractDays(date, 120)>=toDate(reg_time),0,amount)) as dm4,
-           sum(if(subtractDays(date, 150)>=toDate(reg_time),0,amount)) as dm5
- from order where reg_time>'2019-03-18 00:00:00' group by toDate(formatDateTime(reg_time,'%Y-%m-%d')),channel"""
+           if (dt<today(),sum(if(subtractDays(date, 2)>=toDate(reg_time),0,amount)),null) as da2,
+           if(dt<subtractDays(today(), 1), sum(if(subtractDays(date, 3)>=toDate(reg_time),0,amount)),null) as da3,
+           if(dt<subtractDays(today(), 2),sum(if(subtractDays(date, 4)>=toDate(reg_time),0,amount)),null) as da4,
+           if(dt<subtractDays(today(), 3),sum(if(subtractDays(date, 5)>=toDate(reg_time),0,amount)),null) as da5,
+           if(dt<subtractDays(today(), 4),sum(if(subtractDays(date, 6)>=toDate(reg_time),0,amount)),null) as da6,
+           if(dt<subtractDays(today(), 5),sum(if(subtractDays(date, 7)>=toDate(reg_time),0,amount)),null) as da7,
+           if(dt<subtractDays(today(), 6),sum(if(subtractDays(date, 8)>=toDate(reg_time),0,amount)),null) as da8,
+           if(dt<subtractDays(today(), 7),sum(if(subtractDays(date, 9)>=toDate(reg_time),0,amount)),null) as da9,
+           if(dt<subtractDays(today(), 8),sum(if(subtractDays(date, 10)>=toDate(reg_time),0,amount)),null) as da10,
+           if(dt<subtractDays(today(), 9),sum(if(subtractDays(date, 11)>=toDate(reg_time),0,amount)),null) as da11,
+           if(dt<subtractDays(today(), 10),sum(if(subtractDays(date, 12)>=toDate(reg_time),0,amount)),null) as da12,
+           if(dt<subtractDays(today(), 11),sum(if(subtractDays(date, 13)>=toDate(reg_time),0,amount)),null) as da13,
+           if(dt<subtractDays(today(), 12),sum(if(subtractDays(date, 14)>=toDate(reg_time),0,amount)),null) as da14,
+           if(dt<subtractDays(today(), 13),sum(if(subtractDays(date, 15)>=toDate(reg_time),0,amount)),null) as da15,
+           if(dt<subtractDays(today(), 14),sum(if(subtractDays(date, 16)>=toDate(reg_time),0,amount)),null) as da16,
+           if(dt<subtractDays(today(), 15),sum(if(subtractDays(date, 17)>=toDate(reg_time),0,amount)),null) as da17,
+           if(dt<subtractDays(today(), 16),sum(if(subtractDays(date, 18)>=toDate(reg_time),0,amount)),null) as da18,
+           if(dt<subtractDays(today(), 17),sum(if(subtractDays(date, 19)>=toDate(reg_time),0,amount)),null) as da19,
+           if(dt<subtractDays(today(), 18),sum(if(subtractDays(date, 20)>=toDate(reg_time),0,amount)),null) as da20,
+           if(dt<subtractDays(today(), 19),sum(if(subtractDays(date, 21)>=toDate(reg_time),0,amount)),null) as da21,
+           if(dt<subtractDays(today(), 20),sum(if(subtractDays(date, 22)>=toDate(reg_time),0,amount)),null) as da22,
+           if(dt<subtractDays(today(), 21),sum(if(subtractDays(date, 23)>=toDate(reg_time),0,amount)),null) as da23,
+           if(dt<subtractDays(today(), 22),sum(if(subtractDays(date, 24)>=toDate(reg_time),0,amount)),null) as da24,
+           if(dt<subtractDays(today(), 23),sum(if(subtractDays(date, 25)>=toDate(reg_time),0,amount)),null) as da25,
+           if(dt<subtractDays(today(), 24),sum(if(subtractDays(date, 26)>=toDate(reg_time),0,amount)),null) as da26,
+           if(dt<subtractDays(today(), 25),sum(if(subtractDays(date, 27)>=toDate(reg_time),0,amount)),null) as da27,
+           if(dt<subtractDays(today(), 26),sum(if(subtractDays(date, 28)>=toDate(reg_time),0,amount)),null) as da28,
+           if(dt<subtractDays(today(), 27),sum(if(subtractDays(date, 29)>=toDate(reg_time),0,amount)),null) as da29,
+           if(dt<subtractDays(today(), 28),sum(if(subtractDays(date, 30)>=toDate(reg_time),0,amount)),null) as da30,
+           if(dt<subtractDays(today(), 29),sum(if(subtractDays(date, 31)>=toDate(reg_time),0,amount)),null) as da31,
+           if(dt<subtractDays(today(), 30),sum(if(subtractDays(date, 32)>=toDate(reg_time),0,amount)),null) as da32,
+           if(dt<subtractDays(today(), 31),sum(if(subtractDays(date, 33)>=toDate(reg_time),0,amount)),null) as da33,
+           if(dt<subtractDays(today(), 32),sum(if(subtractDays(date, 34)>=toDate(reg_time),0,amount)),null) as da34,
+           if(dt<subtractDays(today(), 33),sum(if(subtractDays(date, 35)>=toDate(reg_time),0,amount)),null) as da35,
+           if(dt<subtractDays(today(), 34),sum(if(subtractDays(date, 36)>=toDate(reg_time),0,amount)),null) as da36,
+           if(dt<subtractDays(today(), 35),sum(if(subtractDays(date, 37)>=toDate(reg_time),0,amount)),null) as da37,
+           if(dt<subtractDays(today(), 36),sum(if(subtractDays(date, 38)>=toDate(reg_time),0,amount)),null) as da38,
+           if(dt<subtractDays(today(), 37),sum(if(subtractDays(date, 39)>=toDate(reg_time),0,amount)),null) as da39,
+           if(dt<subtractDays(today(), 38),sum(if(subtractDays(date, 40)>=toDate(reg_time),0,amount)),null) as da40,
+           if(dt<subtractDays(today(), 39),sum(if(subtractDays(date, 41)>=toDate(reg_time),0,amount)),null) as da41,
+           if(dt<subtractDays(today(), 40),sum(if(subtractDays(date, 42)>=toDate(reg_time),0,amount)),null) as da42,
+           if(dt<subtractDays(today(), 41),sum(if(subtractDays(date, 43)>=toDate(reg_time),0,amount)),null) as da43,
+           if(dt<subtractDays(today(), 42),sum(if(subtractDays(date, 44)>=toDate(reg_time),0,amount)),null) as da44,
+           if(dt<subtractDays(today(), 43),sum(if(subtractDays(date, 45)>=toDate(reg_time),0,amount)),null) as da45,
+           if(dt<subtractDays(today(), 44),sum(if(subtractDays(date, 46)>=toDate(reg_time),0,amount)),null) as da46,
+           if(dt<subtractDays(today(), 45),sum(if(subtractDays(date, 47)>=toDate(reg_time),0,amount)),null) as da47,
+           if(dt<subtractDays(today(), 46),sum(if(subtractDays(date, 48)>=toDate(reg_time),0,amount)),null) as da48,
+           if(dt<subtractDays(today(), 47),sum(if(subtractDays(date, 49)>=toDate(reg_time),0,amount)),null) as da49,
+           if(dt<subtractDays(today(), 48),sum(if(subtractDays(date, 50)>=toDate(reg_time),0,amount)),null) as da50,
+           if(dt<subtractDays(today(), 49),sum(if(subtractDays(date, 51)>=toDate(reg_time),0,amount)),null) as da51,
+           if(dt<subtractDays(today(), 50),sum(if(subtractDays(date, 52)>=toDate(reg_time),0,amount)),null) as da52,
+           if(dt<subtractDays(today(), 51),sum(if(subtractDays(date, 53)>=toDate(reg_time),0,amount)),null) as da53,
+           if(dt<subtractDays(today(), 52),sum(if(subtractDays(date, 54)>=toDate(reg_time),0,amount)),null) as da54,
+           if(dt<subtractDays(today(), 53),sum(if(subtractDays(date, 55)>=toDate(reg_time),0,amount)),null) as da55,
+           if(dt<subtractDays(today(), 54),sum(if(subtractDays(date, 56)>=toDate(reg_time),0,amount)),null) as da56,
+           if(dt<subtractDays(today(), 55),sum(if(subtractDays(date, 57)>=toDate(reg_time),0,amount)),null) as da57,
+           if(dt<subtractDays(today(), 56),sum(if(subtractDays(date, 58)>=toDate(reg_time),0,amount)),null) as da58,
+           if(dt<subtractDays(today(), 57), sum(if(subtractDays(date, 59)>=toDate(reg_time),0,amount)),null) as da59,
+           if(dt<subtractDays(today(),58),sum(if(subtractDays(date, 60)>=toDate(reg_time),0,amount)),null) as da60,
+           if(dt<subtractDays(today(), 88),sum(if(subtractDays(date, 90)>=toDate(reg_time),0,amount)),null) as dm3,
+           if(dt<subtractDays(today(), 118),sum(if(subtractDays(date, 120)>=toDate(reg_time),0,amount)),null) as dm4,
+           if(dt<subtractDays(today(), 148),sum(if(subtractDays(date, 150)>=toDate(reg_time),0,amount)),null) as dm5
+ from order where reg_time>'2019-03-18 00:00:00' group by toDate(formatDateTime(reg_time,'%Y-%m-%d')),channel  """
     data=ck.execute(sql)
     isql="insert into dw_channel_amount_daily values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s," \
          "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
@@ -247,6 +247,26 @@ def dw_channel_amount_daily():
     db.dm.executeMany(isql,data)
 
 
+
+def dw_channel_amount_daily_reverse():
+    sql = """
+     select toDate(formatDateTime(reg_time,'%Y-%m-%d')) as dt,
+       channel as channel,
+                sum(if(date=today(),amount,0)) ba1,
+                sum(if(addDays(date,1)=today(),amount,0)) ba2,
+                sum(if(addDays(date,2)=today(),amount,0)) ba3,
+                sum(if(addDays(date,3)=today(),amount,0)) ba4,
+                sum(if(addDays(date,4)=today(),amount,0)) ba5,
+                sum(if(addDays(date,6)=today(),amount,0)) ba6,
+                sum(if(addDays(date,7)=today(),amount,0)) ba7
+     from order where reg_time>'2019-03-18 00:00:00' and date>=subtractDays(today(),7) group by toDate(formatDateTime(reg_time,'%Y-%m-%d')),channel"""
+    data = ck.execute(sql)
+    isql = "replace into dw_channel_amount_daily_reverse values (%s,%s,%s,%s,%s,%s,%s,%s,%s)"
+    db.dm.execute("truncate table dw_channel_amount_daily_reverse")
+    db.dm.executeMany(isql, data)
+
+
+
 def dw_channel():
     print('run> dw_channel')
     dw_channel_daily()
@@ -257,6 +277,7 @@ def dw_channel():
 if __name__ == '__main__':
 
     # dw_daily_channel()
-    dw_channel()
-    # dw_channel_amount_daily()
-    # dw_channel_user_daily()
+    # dw_channel()
+    dw_channel_amount_daily()
+    # dw_channel_user_daily()
+    # dw_channel_amount_daily_reverse()