当前位置: 首页 > news >正文

东莞网站建设用哪种好响应式网站的制作

东莞网站建设用哪种好,响应式网站的制作,网页建设制作,景县做个油管的网站怎么做目录 一、连续登陆 1.1 连续登陆3天以上的用户 0 问题描述 1 数据准备 2 数据分析 3 小结 1.2 每个用户历史至今连续登录的最大天数 0 问题描述 1 数据准备 2 数据分析 3 小结 1.3 每个用户连续登录的最大天数(间断也算) 0 问题描述 1 数据准备 2 数据分析 3 小…目录 一、连续登陆 1.1 连续登陆3天以上的用户 0 问题描述 1 数据准备 2 数据分析 3 小结 1.2 每个用户历史至今连续登录的最大天数 0 问题描述 1 数据准备 2 数据分析 3 小结 1.3 每个用户连续登录的最大天数(间断也算) 0 问题描述 1 数据准备 2 数据分析 3 小结 一、连续登陆 1.1 连续登陆3天以上的用户 0 问题描述 查询连续登陆3天以上的用户字节面试题 1 数据准备 create table if not exists table1 (id int comment 用户id, date string comment用户登录时间);insert overwrite table table1 values (1,2019-01-01 19:28:00), (1,2019-01-02 19:53:00), (1,2019-01-03 22:00:00), (1,2019-01-05 20:55:00), (1,2019-01-06 21:58:00), (2,2019-02-01 19:25:00), (2,2019-02-02 21:00:00), (2,2019-02-04 22:05:00), (2,2019-02-05 20:59:00), (2,2019-02-06 19:05:00), (3,2019-03-04 21:05:00), (3,2019-03-05 19:10:00), (3,2019-03-06 19:55:00), (3,2019-03-07 21:05:00); 2 数据分析 selectdistinct id from (selectid,difffrom (selectid,date_sub(dt, row_number()over (partition by id order by dt)) difffrom ( --- 同一个用户一天可能登陆多次,所以,先去重selectid,date_format(date,yyyy-MM-dd) as dtfrom table1-- current_date() 获取当前的年月日where date_format(date,yyyy-MM-dd) between date_sub(current_date(),7) and current_date()group by id, date_format(date,yyyy-MM-dd)) tmp1) tmp2group by id, diffhaving count(1) 3) tmp3; 3 小结 “连续登陆”类型的解题思路 1计算 date_sub(login_date,row_number() over (user_id oder by  login_date)) diff; 2group by user_id,diff 分组 3count(1) 3天的用户就是连续登陆3天及以上的用户  1.2 每个用户历史至今连续登录的最大天数 0 问题描述 查询每个用户历史至今连续登录的最大天数 1 数据准备 create table if not exists table1 (id int comment 用户id, date string comment用户登录时间);insert overwrite table table1 values (1,2019-01-01 19:28:00), (1,2019-01-02 19:53:00), (1,2019-01-03 22:00:00), (1,2019-01-05 20:55:00), (1,2019-01-06 21:58:00), (2,2019-02-01 19:25:00), (2,2019-02-02 21:00:00), (2,2019-02-04 22:05:00), (2,2019-02-05 20:59:00), (2,2019-02-06 19:05:00), (3,2019-03-04 21:05:00), (3,2019-03-05 19:10:00), (3,2019-03-06 19:55:00), (3,2019-03-07 21:05:00); 2 数据分析 selectid,max(cnt) as days from (selectid,count(1) as cntfrom (selectid,date,date_sub(date, row_number() over (partition by id order by date)) difffrom (--用户在同一天可能登录多次需要去重selectid,date_format(date, yyyy-MM-dd) as datefrom table1group by id, date_format(date, yyyy-MM-dd)) tmp1) tmp2group by id, diff) tmp3 group by id; 3 小结 “连续登陆”类型的解题思路 1计算 date_sub(login_date,row_number() over (user_id oder by  login_date)) diff; 2group by user_id,diff 分组 3max(cnt)得到就是每个用户历史至今连续登陆的 最大天数。 1.3 每个用户连续登录的最大天数(间断也算) 0 问题描述 统计各用户最长的连续登录天数间断一天也算作连续。例如一个用户在1,3,5,6号登录则视为连续6天登录。 1 数据准备 create table if not exists table1 (id int comment 用户id, date string comment用户登录时间);insert overwrite table table1 values (1,2019-01-01 19:28:00), (1,2019-01-02 19:53:00), (1,2019-01-03 22:00:00), (1,2019-01-05 20:55:00), (1,2019-01-06 21:58:00), (2,2019-02-01 19:25:00), (2,2019-02-02 21:00:00), (2,2019-02-04 22:05:00), (2,2019-02-05 20:59:00), (2,2019-02-06 19:05:00), (3,2019-03-04 21:05:00), (3,2019-03-05 19:10:00), (3,2019-03-06 19:55:00), (3,2019-03-07 21:05:00); 2 数据分析 方式一间断的那一天构造array数组利用炸裂函数进行补全然后按照“用户连续登陆”的思路来做。 selectid,max(cnt) as days from (selectid,diff,count(1) as cntfrom (selectid,login_date,next_login_date,arr,new_login_date,date_sub(new_login_date, row_number() over (partition by id order by new_login_date)) difffrom (selectid,login_date,next_login_date,arr,new_login_datefrom (selectid,login_date,next_login_date,--间断的那一天构造array数组利用炸裂函数进行补全if(datediff(next_login_date, login_date) 2,array(login_date, date_add(login_date, 1)),array(login_date)) as arrfrom (selectid,login_date,--窗口函数 lead(向后取n行)--lead(column1,n,val)over(partition by column2 order by column3) 查询当前行的后边第n行数据如果没有就为nulllead(login_date, 1, 9999-12-31)over (partition by id order by login_date) next_login_datefrom (--用户在同一天可能登录多次需要去重selectid,date_format(date, yyyy-MM-dd) as login_datefrom table1group by id, date_format(date, yyyy-MM-dd)) tmp1) tmp2) tmp3lateral view explode(arr) tmp as new_login_date) tmp4) tmp5group by id, diff) tmp6 group by id; 方式二对用户多段stage的连续登陆进行划分,思路类似:会话划分 selectid,max(diff) as days from (selectid,stage,datediff(max(login_date), min(login_date)) 1 as difffrom (selectid,login_date,-- 思路类似会话划分字符串拼接得到stageconcat(id, -, sum(start_point)over (partition by id order by login_date rows between unbounded preceding and current row )) stagefrom (selectid,login_date,--间隔一天也算连续所以差值大于2的数据打上标签if(datediff(login_date, last_login_date) 2, 1, 0) start_pointfrom (selectid,login_date,--窗口函数 lag(向前取n行)--lag(column1,n,val)over(partition by column2 order by column3) 查询当前行的前边第n行数据如果没有就为nulllag(login_date, 1, 1970-01-01)over (partition by id order by login_date) as last_login_datefrom (selectid,date_format(date, yyyy-MM-dd) as login_datefrom table1group by id, date_format(date, yyyy-MM-dd)) tmp1) tmp2) tmp3) tmp4group by id, stage) tmp5 group by id; 3 小结 “间断连续”类型的解题思路 1构造array数组 2炸裂函数 侧写视图 lateral view explode将一行变多行补全间断的那几天 3补全后之后就按照“连续登陆”的情景进行处理 计算 date_sub(login_date,row_number() over (user_id oder by  login_date)) diff;group by user_id,diff 分组max(cnt)得到就是每个用户历史至今连续登陆的最大天数。
http://www.hkea.cn/news/14523947/

相关文章:

  • 咨询网站模板中国优秀网站
  • 班玛县网站建设公司环境设计公司排名
  • 用ps网站首页怎么做网站后台下载器
  • 哪里可以做网站啊wordpress好不好
  • 怎样用西瓜影音做网站做海报的网站
  • 网站建设简述外链代发排名
  • 网站外包建设婴幼儿网站模板
  • 深圳网站建设联系电话重庆市建设工程施工安全管理网官网
  • 网站建设 的公司哪家好小程序制作开发
  • 网站做视频链接wordpress 文章同步微信
  • 网站怎样改logowordpress角色权限管理
  • 玄武模板网站制作品牌网站官网域名要多少钱
  • 重生做门户网站的小说网络活动策划方案
  • asp.net mysql 网站开发wordpress新建主题
  • 成都建设厅网站首页wordpress自定义菜单文章
  • 玛伊网站做兼职加入要多少钱杭州市拱墅区网站建设
  • wordpress站点如何加速万网官网域名注册多少钱
  • 化妆品的网站布局设计图片大全建设银行 贷款 查询 网站
  • 宣传部网站建设计划书个人做网站 优帮云
  • 左侧 导航 网站关键词排名是什么意思
  • 电脑当服务器做网站开发公司外包
  • 哪家建设网站成都全网推广哪家专业
  • 珠海哪家做企业网站公司好软件开发者大会
  • 网站头部通用代码实名制认证网站
  • 宁波怎么建网站模板六安网红小杨哥
  • 汤姆叔叔官方网站建设网站建设学习什么
  • 猪八戒网站建设报价网站模板制作教程视频教程
  • 网站建设客户定位做网站wordpress
  • 中国移动网站官网网站制作哪种好
  • godaddy网站建设怎么样法治中国建设网站