Browse Source

MOD:添加留存率

cxyu 3 years ago
parent
commit
3c2b4ef91d
2 changed files with 45 additions and 8 deletions
  1. 33 6
      data_manage/pitcher_panel.py
  2. 12 2
      data_manage/public_analysis.py

+ 33 - 6
data_manage/pitcher_panel.py

@@ -145,6 +145,11 @@ def get_channel_overview(user_id, channel, pitcher, stage, book, start, end, pag
        order_count,order_user,
        order_amount,
        game_user_sum,
+       seven_stay_rate, 
+        fifteen_stay_rate,
+        thirty_stay_rate,
+        fortyfive_stay_rate,
+        sixty_stay_rate,
        third_stay_rate,
        second_stay_rate,
        today_active_user_rate,
@@ -169,10 +174,15 @@ from dw_channel where 1=1 {op}  {op1} {op2} {op3} {op4} {op6} {op7} {op5} """
     sumsql = f"""select '总计' date,
     sum(reg_num) reg_num,
     
-    sum(game_user_sum) game_user_sum,
+    max(game_user_sum) game_user_sum,
+    round(if(sum(reg_num)=0,0,sum(reg_num*sixty_stay_rate)/sum(reg_num)),2) sixty_stay_rate,
+    round(if(sum(reg_num)=0,0,sum(reg_num*fortyfive_stay_rate)/sum(reg_num)),2) fortyfive_stay_rate,
+    round(if(sum(reg_num)=0,0,sum(reg_num*thirty_stay_rate)/sum(reg_num)),2) thirty_stay_rate,
+    round(if(sum(reg_num)=0,0,sum(reg_num*fifteen_stay_rate)/sum(reg_num)),2) fifteen_stay_rate,
+    round(if(sum(reg_num)=0,0,sum(reg_num*seven_stay_rate)/sum(reg_num)),2) seven_stay_rate,
     round(if(sum(reg_num)=0,0,sum(reg_num*third_stay_rate)/sum(reg_num)),2) third_stay_rate,
     round(if(sum(reg_num)=0,0,sum(reg_num*second_stay_rate)/sum(reg_num)),2) second_stay_rate,
-    round(if(sum(game_user_sum)=0,0,sum(game_user_sum*today_active_user_rate)/sum(game_user_sum)),2) today_active_user_rate,
+    round(if(max(game_user_sum)=0,0,sum(game_user_sum*today_active_user_rate)/max(game_user_sum)),2) today_active_user_rate,
     
     
     round(if(sum(reg_num)=0,0,sum(cost)/sum(reg_num)),2) reg_per_cost,
@@ -499,10 +509,17 @@ def get_channel_order_trend(user_id, channel, pitcher, start, end, page, page_si
         sum(a.reg_order_amount) reg_order_amount,
         sum(a.first_order_amount ) first_order_amount ,sum(a.view_count) view_count,
         sum(a.click_count) click_count ,sum(a.follow_user) follow_user ,
-        sum(game_user_sum) game_user_sum,
+        max(game_user_sum) game_user_sum,
+        
+        round(if(sum(reg_num)=0,0,sum(reg_num*sixty_stay_rate)/sum(reg_num)),2) sixty_stay_rate,
+        round(if(sum(reg_num)=0,0,sum(reg_num*fortyfive_stay_rate)/sum(reg_num)),2) fortyfive_stay_rate,
+        round(if(sum(reg_num)=0,0,sum(reg_num*thirty_stay_rate)/sum(reg_num)),2) thirty_stay_rate,
+        round(if(sum(reg_num)=0,0,sum(reg_num*fifteen_stay_rate)/sum(reg_num)),2) fifteen_stay_rate,
+        round(if(sum(reg_num)=0,0,sum(reg_num*seven_stay_rate)/sum(reg_num)),2) seven_stay_rate,
+        
         round(if(sum(reg_num)=0,0,sum(reg_num*third_stay_rate)/sum(reg_num)),2) third_stay_rate,
         round(if(sum(reg_num)=0,0,sum(reg_num*second_stay_rate)/sum(reg_num)),2) second_stay_rate,
-        round(if(sum(game_user_sum)=0,0,sum(game_user_sum*today_active_user_rate)/sum(game_user_sum)),2) today_active_user_rate,
+        round(if(max(game_user_sum)=0,0,sum(game_user_sum*today_active_user_rate)/max(game_user_sum)),2) today_active_user_rate,
         sum(a.cost) cost,sum(a.reg_order_count) reg_order_count,
         sum(a.reg_order_user) reg_order_user ,sum(a.web_view_count) web_view_count ,
         sum(a.platform_view_count) platform_view_count ,sum(a.web_order_count ) web_order_count ,
@@ -608,6 +625,11 @@ def get_channel_order_trend(user_id, channel, pitcher, start, end, page, page_si
                 game_user_sum,
                 third_stay_rate,
                 second_stay_rate,
+                seven_stay_rate, 
+                fifteen_stay_rate,
+                thirty_stay_rate,
+                fortyfive_stay_rate,
+                sixty_stay_rate,
                 today_active_user_rate,
                 round(reg_order_amount/cost,4) roi,
                 round(first_order_amount/cost,4) first_roi,
@@ -698,10 +720,15 @@ def get_channel_order_trend(user_id, channel, pitcher, start, end, page, page_si
                sum(first_amount)  first_amount,
                 sum(profit) profit,
                 sum(new_follow_user) new_follow_user,
-                sum(game_user_sum) game_user_sum,
+                max(game_user_sum) game_user_sum,
+                 round(if(sum(reg_num)=0,0,sum(reg_num*sixty_stay_rate)/sum(reg_num)),2) sixty_stay_rate,
+                round(if(sum(reg_num)=0,0,sum(reg_num*fortyfive_stay_rate)/sum(reg_num)),2) fortyfive_stay_rate,
+                round(if(sum(reg_num)=0,0,sum(reg_num*thirty_stay_rate)/sum(reg_num)),2) thirty_stay_rate,
+                round(if(sum(reg_num)=0,0,sum(reg_num*fifteen_stay_rate)/sum(reg_num)),2) fifteen_stay_rate,
+                round(if(sum(reg_num)=0,0,sum(reg_num*seven_stay_rate)/sum(reg_num)),2) seven_stay_rate,
                 round(if(sum(reg_num)=0,0,sum(reg_num*third_stay_rate)/sum(reg_num)),2) third_stay_rate,
                 round(if(sum(reg_num)=0,0,sum(reg_num*second_stay_rate)/sum(reg_num)),2) second_stay_rate,
-                round(if(sum(game_user_sum)=0,0,sum(game_user_sum*today_active_user_rate)/sum(game_user_sum)),2) today_active_user_rate,
+                round(if(max(game_user_sum)=0,0,sum(game_user_sum*today_active_user_rate)/max(game_user_sum)),2) today_active_user_rate,
                 round(sum(reg_amount)/sum(cost),4) roi,
                 round(sum(first_amount)/sum(cost),4) first_roi,
                 round(sum(cost)/sum(new_follow_user),2) new_follow_per_cost,

+ 12 - 2
data_manage/public_analysis.py

@@ -67,6 +67,11 @@ click_count,
 follow_user,
 reg_order_user,
 first_order_user,
+seven_stay_rate, 
+fifteen_stay_rate,
+thirty_stay_rate,
+fortyfive_stay_rate,
+sixty_stay_rate,
 third_stay_rate,
 second_stay_rate,
 today_active_user_rate,
@@ -169,10 +174,15 @@ round(sum(first_order_user)/sum(click_count),4) first_order_rate,
 sum(view_count) view_count,
 sum(click_count) click_count,
 sum(follow_user) follow_user,
-sum(game_user_sum) game_user_sum,
+max(game_user_sum) game_user_sum,
+round(if(sum(reg_num)=0,0,sum(reg_num*sixty_stay_rate)/sum(reg_num)),2) sixty_stay_rate,
+round(if(sum(reg_num)=0,0,sum(reg_num*fortyfive_stay_rate)/sum(reg_num)),2) fortyfive_stay_rate,
+round(if(sum(reg_num)=0,0,sum(reg_num*thirty_stay_rate)/sum(reg_num)),2) thirty_stay_rate,
+round(if(sum(reg_num)=0,0,sum(reg_num*fifteen_stay_rate)/sum(reg_num)),2) fifteen_stay_rate,
+round(if(sum(reg_num)=0,0,sum(reg_num*seven_stay_rate)/sum(reg_num)),2) seven_stay_rate,
 round(if(sum(reg_num)=0,0,sum(reg_num*third_stay_rate)/sum(reg_num)),2) third_stay_rate,
 round(if(sum(reg_num)=0,0,sum(reg_num*second_stay_rate)/sum(reg_num)),2) second_stay_rate,
-round(if(sum(game_user_sum)=0,0,sum(game_user_sum*today_active_user_rate)/sum(game_user_sum)),2) today_active_user_rate,
+round(if(max(game_user_sum)=0,0,sum(game_user_sum*today_active_user_rate)/max(game_user_sum)),2) today_active_user_rate,
 sum(reg_order_user) reg_order_user,
 sum(first_order_user) first_order_user,
 round(sum(cost)/sum(follow_user),2) follow_cost,