Commit 947c354b authored by 高雅喆's avatar 高雅喆

optimize the sql statement in get_click_times_to_count_uid_df()

parent 74dba4be
# -*- coding: UTF-8 -*- # -*- coding: UTF-8 -*-
import pymysql import pymysql
import datetime import datetime
import pandas as pd
def con_sql(sql): def con_sql(sql):
#从数据库的表里获取数据 #从数据库的表里获取数据
...@@ -72,15 +71,16 @@ def get_activate_uid_ctr(platform, ndays=1): ...@@ -72,15 +71,16 @@ def get_activate_uid_ctr(platform, ndays=1):
return [platform, clk_count, imp_count, clk_rate] return [platform, clk_count, imp_count, clk_rate]
#获取 {点击次数 : 独立用户数} #获取 (点击次数 : 独立用户数)
def get_click_times_to_count_uid_df(): def get_click_times_to_count_uid_df():
""" """
rtype : pandas.DataFrame rtype : tuple
""" """
sql = "select device_id,count(cid_type) click_times from data_feed_click where from_unixtime(time,'%Y-%m-%d')=date_add(curdate(), interval -1 day) group by device_id order by click_times desc" sql = "select times,count(device_id) \
uid_click_times = con_sql(sql) from (select device_id,count(cid_type) as times \
uid_lst = [i[0] for i in uid_click_times] from data_feed_click \
click_times_lst = [i[1] for i in uid_click_times] where from_unixtime(time,'%Y-%m-%d')=date_add(curdate(), interval -1 day) \
uid_click_times_df = pd.DataFrame({"uid":uid_lst,"click_times":click_times_lst}) group by device_id) as t \
df = uid_click_times_df.groupby(by="click_times",as_index=False).count() group by times order by times"
return df result = con_sql(sql)
return result
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