# -*- coding: UTF-8 -*- import pymysql def con_sql(sql): # 从数据库的表里获取数据 db = pymysql.connect(host='10.66.157.22', port=4000, user='root', passwd='3SYz54LS9#^9sBvC', db='jerry_test') cursor = db.cursor() cursor.execute(sql) result = cursor.fetchall() db.close() return result #1 获取所有平台的0点击用户占比 def get_all_click_zero_rate(): sql = "select count(distinct(device_id)) from data_feed_click where from_unixtime(time,'%Y-%m-%d')=date_add(curdate(), interval -1 day)" click_zero_count = con_sql(sql) click_zero_count = click_zero_count[0][0] sql = "select count(distinct(device_id)) from data_feed_exposure where from_unixtime(time,'%Y-%m-%d')=date_add(curdate(), interval -1 day)" impression_zero_count = con_sql(sql) impression_zero_count = impression_zero_count[0][0] click_zero_count = impression_zero_count-click_zero_count all_click_zero_rate = click_zero_count / impression_zero_count return ["所有",click_zero_count,impression_zero_count,round(all_click_zero_rate,4)] #2 获取ios平台的0点击用户占比 def get_ios_click_zero_rate(): sql = "select count(distinct(device_id)) from data_feed_click where device_type='AppStore' and from_unixtime(time,'%Y-%m-%d')=date_add(curdate(), interval -1 day)" click_zero_count = con_sql(sql) click_zero_count = click_zero_count[0][0] sql = "select count(distinct(device_id)) from data_feed_exposure where device_type='App Store' and from_unixtime(time,'%Y-%m-%d')=date_add(curdate(), interval -1 day)" impression_zero_count = con_sql(sql) impression_zero_count = impression_zero_count[0][0] click_zero_count = impression_zero_count-click_zero_count ios_click_zero_rate = click_zero_count / impression_zero_count return ["苹果",click_zero_count,impression_zero_count,round(ios_click_zero_rate,4)] #3 获取安卓平台的0点击用户占比 def get_android_click_zero_rate(): sql = "select count(distinct(device_id)) from data_feed_click where device_type!='AppStore' and from_unixtime(time,'%Y-%m-%d')=date_add(curdate(), interval -1 day)" click_zero_count = con_sql(sql) click_zero_count = click_zero_count[0][0] sql = "select count(distinct(device_id)) from data_feed_exposure where device_type!='App Store' and from_unixtime(time,'%Y-%m-%d')=date_add(curdate(), interval -1 day)" impression_zero_count = con_sql(sql) impression_zero_count = impression_zero_count[0][0] click_zero_count = impression_zero_count-click_zero_count android_click_zero_rate = click_zero_count / impression_zero_count return ["安卓",click_zero_count,impression_zero_count,round(android_click_zero_rate,4)] if __name__ == "__main__": all_click_zero_rate = get_all_click_zero_rate() ios_click_zero_rate = get_ios_click_zero_rate() android_click_zero_rate = get_android_click_zero_rate()