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

网站搭建需要的公司营销渠道策划方案

网站搭建需要的公司,营销渠道策划方案,网页设计专业公司,养老网站备案必须做前置审批吗力扣题 1、题目地址 1454. 活跃用户 2、模拟表 表 Accounts#xff1a; Column NameTypeidintnamevarchar id 是该表主键#xff08;具有唯一值的列#xff09;该表包含账户 id 和账户的用户名. 表 Logins#xff1a; Column NameTypeidintlogin_datedate 该表可能…力扣题 1、题目地址 1454. 活跃用户 2、模拟表 表 Accounts Column NameTypeidintnamevarchar id 是该表主键具有唯一值的列该表包含账户 id 和账户的用户名. 表 Logins Column NameTypeidintlogin_datedate 该表可能包含重复项.该表包含登录用户的账户 id 和登录日期. 用户也许一天内登录多次. 3、要求 活跃用户 是指那些至少连续 5 天登录账户的用户。 编写解决方案, 找到 活跃用户 的 id 和 name。 返回的结果表按照 id 排序 。 结果表格式如下例所示。 示例 1 输入 Accounts 表 idname1Winston7Jonathan Logins 表 idlogin_date72020-05-3012020-05-3072020-05-3172020-06-0172020-06-0272020-06-0272020-06-0312020-06-0772020-06-10 输出 idname7Jonathan 解释 id 1 的用户 Winston 仅仅在不同的 2 天内登录了 2 次所以Winston 不是活跃用户. id 7 的用户 Jonathon 在不同的 6 天内登录了 7 次6 天中有 5 天是连续的所以Jonathan 是活跃用户. 进阶问题 如果活跃用户是那些至少连续 n 天登录账户的用户你能否写出通用的解决方案? 4、代码编写 我的代码 逻辑是找到利用窗口函数对不同 id 进行分组再对各组里面的根据登录时间顺序排序取前四天的时间到当前时间记录个数只要个数满足大于等于 5 就满足条件上面有说到 Logins 表是有可能出现重复的情况所以需要提前去重。 SELECT DISTINCT two.id, three.name FROM (SELECT *, COUNT(*) OVER (PARTITION BY id ORDER BY login_date range BETWEEN interval 4 day preceding AND current row) AS numFROM (SELECT DISTINCT id, login_date FROM Logins) AS one ) AS twoLEFT JOIN Accounts three USING(id) WHERE num 5网友代码巧用 DATE_SUB 函数 代码 SELECT DISTINCT Logins.id, Accounts.name FROM (SELECT id, reference_dt, COUNT(1) cnt FROM (SELECT DISTINCT id, login_date, DATE_SUB(login_date, INTERVAL DENSE_RANK() OVER ( PARTITION BY id ORDER BY login_date ASC ) DAY) reference_dtFROM Logins) LoginsGROUP BY id, reference_dt ) LoginsINNER JOIN Accounts ON Logins.id Accounts.id WHERE cnt 5 ORDER BY id代码分析 第一步按 id 据 login_date 正序求 rank这里用 DENSE_RANK() SELECT DISTINCT id, login_date, DENSE_RANK() OVER ( PARTITION BY id ORDER BY login_date ASC ) rk FROM Logins结果如下这一步看不懂没关系可直接看下一步。 | id | login_date | rk | | -- | ---------- | -- | | 1 | 2020-05-30 | 1 | | 1 | 2020-06-07 | 2 | | 7 | 2020-05-30 | 1 | | 7 | 2020-05-31 | 2 | | 7 | 2020-06-01 | 3 | | 7 | 2020-06-02 | 4 | | 7 | 2020-06-03 | 5 | | 7 | 2020-06-10 | 6 |第二步用 login_date - rank求出 reference_dtreference_dt 相同的 login_date 即为连续的 login_date SELECT DISTINCT id, login_date, DATE_SUB(login_date, INTERVAL DENSE_RANK() OVER ( PARTITION BY id ORDER BY login_date ASC ) DAY) reference_dt FROM Logins结果如下很明显能看出不同 id 里面只要 reference_dt 是相同的就一定代表 login_date 是连续的之后我们只需要根据 id 和 reference_dt 进行分组只要个数大于等于 5 就满足条件查询出对应 id再去连接 Accounts 查询其名字就可以 | id | login_date | reference_dt | | -- | ---------- | ------------ | | 1 | 2020-05-30 | 2020-05-29 | | 1 | 2020-06-07 | 2020-06-05 | | 7 | 2020-05-30 | 2020-05-29 | | 7 | 2020-05-31 | 2020-05-29 | | 7 | 2020-06-01 | 2020-05-29 | | 7 | 2020-06-02 | 2020-05-29 | | 7 | 2020-06-03 | 2020-05-29 | | 7 | 2020-06-10 | 2020-06-04 |DENSE_RANK 函数可参考MYSQL 窗口函数Rows Range—— 滑动窗口函数用法
http://www.zqtcl.cn/news/497632/

相关文章:

  • 建筑建设行业网站大型购物网站开发
  • 手机网站开发用什么设计之家网
  • 网站开发平台有哪些什么是网络开发
  • 学校网站前置审批网站做哪些比较有意思
  • 怎么给企业做网站学计算机网站建设
  • 网站关键词优化排名技巧aiyuan wordpress
  • 建设工程资质证书二维码扫描网站自己做的网站如何让qq登录
  • 网站域名有效期wordpress 特别慢
  • 建立个人网站服务器如何用dedecms做网站
  • php网站开发实市场推广策略 包括哪些
  • 合众商道网站开发可以投稿的写作网站
  • 北京贸易公司网站制作免费的查企业的网站
  • 网站建设报价表模板下载小程序怎么找出来
  • 网站制作简单协议wordpress快速建站教程视频教程
  • 杭州做网站价格北京企业响应式网站建设
  • 30个成功的电子商务网站设计中企动力 网站报价
  • php 网站开发 视频百度seo排名查询
  • 网站开发代码wordpress提示安装
  • 网站推广的策略高端网球拍
  • 广东知名网站建设wordpress 用户量
  • asp源代码网站网络架构图是什么
  • 专业做淘宝网站公司吗苏州网站制作开发
  • 电商网站模板html安阳历史
  • seo快速排名多少钱安阳网站怎么优化
  • 如何在网站后台删除栏目阿里巴巴上做网站要多少钱
  • 网站建设意识形态工作河北省两学一做网站
  • 綦江建站哪家正规php做不了大型网站吗
  • 优秀的设计网站青岛网站设计企业
  • 谁有做爰网站号wordpress 4.8 中文
  • 毕业设计做网站用什么广州中智软件开发有限公司