diff --git a/eda/recommended_indexs/getClickOneUidRateDetail.py b/eda/recommended_indexs/getClickOneUidRateDetail.py new file mode 100644 index 0000000000000000000000000000000000000000..5350f7bf8c55c499a8a8e5a02f2b66a12fbe3542 --- /dev/null +++ b/eda/recommended_indexs/getClickOneUidRateDetail.py @@ -0,0 +1,129 @@ +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")) + + + + + diff --git a/eda/recommended_indexs/getClickZeroUidRateDetail.py b/eda/recommended_indexs/getClickZeroUidRateDetail.py index 6dc7eeb0f6032b0e2d6d40c5f9e5e6af04ffce85..7cb7d0aeb9c6a8ebcfb8b1fac38a663de21f7fe7 100644 --- a/eda/recommended_indexs/getClickZeroUidRateDetail.py +++ b/eda/recommended_indexs/getClickZeroUidRateDetail.py @@ -139,13 +139,13 @@ def result2dict(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 - -no_click_uid_detail_all = result2dict(get_rate_detail("all")) -no_click_uid_detail_ios = result2dict(get_rate_detail("ios")) -no_click_uid_detail_android = result2dict(get_rate_detail("android")) - - + +if __name__ == '__main__': + no_click_uid_detail_all = result2dict(get_rate_detail("all")) + no_click_uid_detail_ios = result2dict(get_rate_detail("ios")) + no_click_uid_detail_android = result2dict(get_rate_detail("android"))