Commit 8f74d01a authored by 高雅喆's avatar 高雅喆

add getClickOneUidRateDetail.py

parent ad29164a
import datetime
import pymysql
#一周之前的timestamp(7)
my_date1 = datetime.date.today() - datetime.timedelta(days=7)
my_tm1 = int(my_date1.strftime("%s"))
#二周之前的timestamp(14)
my_date2 = datetime.date.today() - datetime.timedelta(days=14)
my_tm2 = int(my_date2.strftime("%s"))
#一个月之前的timestamp(30)
my_date3 = datetime.date.today() - datetime.timedelta(days=30)
my_tm3 = int(my_date3.strftime("%s"))
#两个月之前的timestamp(60)
my_date4 = datetime.date.today() - datetime.timedelta(days=60)
my_tm4 = int(my_date4.strftime("%s"))
#三个月之前的timestamp(90)
my_date5 = datetime.date.today() - datetime.timedelta(days=90)
my_tm5 = int(my_date5.strftime("%s"))
def get_rate_detail(platform):
if platform == "ios":
platform = "='AppStore'"
elif platform == "android":
platform = "!='AppStore'"
else:
platform = " is not null"
db = pymysql.connect(host='10.66.157.22', port=4000, user='root', passwd='3SYz54LS9#^9sBvC', db='jerry_test')
cursor = db.cursor()
sql = "select '0-7' as label,count(distinct(device_id)) from data_feed_click \
where device_type{0} \
and from_unixtime(time,'%Y-%m-%d')=date_add(curdate(), interval -1 day) \
and device_id in \
(select distinct(device_id) \
from data_feed_exposure \
where device_id not in \
(select distinct(device_id) from data_feed_exposure \
where time < {1})) \
union all \
select '7-14' as label,count(distinct(device_id)) from data_feed_click \
where device_type{0} \
and from_unixtime(time,'%Y-%m-%d')=date_add(curdate(), interval -1 day) \
and device_id in \
(select distinct(device_id) \
from data_feed_exposure \
where device_id not in \
(select distinct(device_id) from data_feed_exposure \
where time < {2}) \
and device_id in \
(select distinct(device_id) from data_feed_exposure \
where time < {1})) \
union all \
select '14-30' as label,count(distinct(device_id)) from data_feed_click \
where device_type{0} \
and from_unixtime(time,'%Y-%m-%d')=date_add(curdate(), interval -1 day) \
and device_id in \
(select distinct(device_id) \
from data_feed_exposure \
where device_id not in \
(select distinct(device_id) from data_feed_exposure \
where time < {3}) \
and device_id in \
(select distinct(device_id) from data_feed_exposure \
where time < {2})) \
union all \
select '30-60' as label,count(distinct(device_id)) from data_feed_click \
where device_type{0} \
and from_unixtime(time,'%Y-%m-%d')=date_add(curdate(), interval -1 day) \
and device_id in \
(select distinct(device_id) \
from data_feed_exposure \
where device_id not in \
(select distinct(device_id) from data_feed_exposure \
where time < {4}) \
and device_id in \
(select distinct(device_id) from data_feed_exposure \
where time < {3})) \
union all \
select '60-90' as label,count(distinct(device_id)) from data_feed_click \
where device_type{0} \
and from_unixtime(time,'%Y-%m-%d')=date_add(curdate(), interval -1 day) \
and device_id in \
(select distinct(device_id) \
from data_feed_exposure \
where device_id not in \
(select distinct(device_id) from data_feed_exposure \
where time < {5}) \
and device_id in \
(select distinct(device_id) from data_feed_exposure \
where time < {4})) \
union all \
select '90+' as label,count(distinct(device_id)) from data_feed_click \
where device_type{0} \
and from_unixtime(time,'%Y-%m-%d')=date_add(curdate(), interval -1 day) \
and device_id in \
(select distinct(device_id) \
from data_feed_exposure \
where device_id in \
(select distinct(device_id) from data_feed_exposure \
where time < {5}))".format(platform,my_tm1,my_tm2,my_tm3,my_tm4,my_tm5)
cursor.execute(sql)
result = cursor.fetchall()
db.close()
return result
def result2dict(result):
"""
result : tuple2
rtype : dict
"""
dct = {}
sum_count = 0
for i in result:
sum_count += i[1]
for i in result:
dct[i[0]] = "{}%".format(round(i[1]/sum_count*100,2))
print("sum:{}".format(sum_count))
return dct
if __name__ == '__main__':
have_click_uid_detail_all = result2dict(get_rate_detail("all"))
have_click_uid_detail_ios = result2dict(get_rate_detail("ios"))
have_click_uid_detail_android = result2dict(get_rate_detail("android"))
...@@ -139,13 +139,13 @@ def result2dict(result): ...@@ -139,13 +139,13 @@ def result2dict(result):
sum_count += i[1] sum_count += i[1]
for i in result: for i in result:
dct[i[0]] = "{}%".format(round(i[1]/sum_count*100,2)) dct[i[0]] = "{}%".format(round(i[1]/sum_count*100,2))
print("sum:{}".format(sum_count))
return dct return dct
no_click_uid_detail_all = result2dict(get_rate_detail("all")) if __name__ == '__main__':
no_click_uid_detail_ios = result2dict(get_rate_detail("ios")) no_click_uid_detail_all = result2dict(get_rate_detail("all"))
no_click_uid_detail_android = result2dict(get_rate_detail("android")) no_click_uid_detail_ios = result2dict(get_rate_detail("ios"))
no_click_uid_detail_android = result2dict(get_rate_detail("android"))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment