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

网站开发外包费用政务网站建设的重要性

网站开发外包费用,政务网站建设的重要性,关键词组合工具,鹰眼智能营销系统文章目录 概述题目:分组问题求解题解第一步:求解差值步骤二:窗口分组累加完整SQL 总结 概述 最近刷题时遇到一些比较有意思的题目,乍一遇上时还不知道怎么求解,在灵光一闪时找到了问题的求解答案,感觉还比…

文章目录

  • 概述
  • 题目:分组问题求解
  • 题解
    • 第一步:求解差值
    • 步骤二:窗口分组累加
    • 完整SQL
  • 总结

概述

最近刷题时遇到一些比较有意思的题目,乍一遇上时还不知道怎么求解,在灵光一闪时找到了问题的求解答案,感觉还比较有意思。题目虽然不是很难,但是要解答出来还是需要有一点思维的转弯,为了加深记忆,就选取了一道记录下来。

题目:分组问题求解

如下为电商公司用户访问时间数据,某个用户连续的访问记录如果时间间隔小于 60 秒,则分为同一个组.

表logs

字段名数据类型
idbigint
tsbigint

输入数据如下:

idts(秒)
100117523641234
100117523641256
100217523641278
100117523641334
100217523641434
100117523641534
100117523641544
100217523641634
100117523641638
100117523641654

参考结果:

idts(秒)group
1001175236412341
1001175236412561
1001175236413342
1001175236415343
1001175236415443
1001175236416384
1001175236416544
1002175236412781
1002175236414342
1002175236416343

题解

第一步:求解差值

因为需要按照id分组,求解每个用户连续访问时间间隔小于60秒,则放在同一组,所以需要使用窗口函数,将上一行的ts移动到下一行,进行差值运算。
需要用到的知识点:

  • PARTITION BY
  • LAG():下移值
WITH temp_001 AS (SELECT id,ts,ts - LAG(ts,1,ts) OVER (PARTITION BY id ORDER BY ts ASC) AS ts_diffFROM logs
)

输出如下:

idtsts_diff
10011752364123417523641234
10011752364125622
10011752364133478
100117523641534200
10011752364154410
10011752364163894
10011752364165416
10021752364127817523641278
100217523641434156
100217523641634200

步骤二:窗口分组累加

由上面的中间结果我们已经得出了一个ts的差值ts_diff,按照滑动 窗口顺序遍历窗口中的每一行数据,如果ts_diff的值大于指定的值60,则加1,否则加0。

第一行ts_diff的值大于60,则加1结果是1,然后第二行值为22加0,值还是为1

第二行和第一行的分组id就都是1了,分在了同一组达到了我们想要的效果。

第三行ts_diff的值是78大于60,加1结果为2,组的ID变成了2。

其他的依次如上。

SQL实现:

SELECT id,ts,SUM(IF(ts_diff>60,1,0)) OVER(PARTITION BY id  ORDER BY ts ASC) AS group
FROM temp_001

输出结果:

idts(秒)group
1001175236412341
1001175236412561
1001175236413342
1001175236415343
1001175236415443
1001175236416384
1001175236416544
1002175236412781
1002175236414342
1002175236416343

完整SQL

WITH temp_001 AS (SELECT id,ts,ts - LAG(ts,1,ts) OVER (PARTITION BY id ORDER BY ts ASC) AS ts_diffFROM logs
)
SELECT id,ts,SUM(IF(ts_diff>60,1,0)) OVER(PARTITION BY id  ORDER BY ts ASC) AS group
FROM temp_001;

总结

这道题考察的知识点就是对窗口的理解和运用,第一步下移并做差值运算一般都可以快速想到,第二步就需要一点点思维的闪光。利用IF做归一话处理并使用滑动窗口求和得到分组的组号。

http://www.dtcms.com/wzjs/584184.html

相关文章:

  • 阿克苏交通建设局网站网站运营与管理实训报告
  • 重庆做企业网站设计的公司宣传推广计划
  • 国外炫酷网站欣赏上海长宁建设和交通门户网站
  • 神华集团 两学一做 网站大型企业网站欣赏
  • 杭州手机网站制作公司哪家好怎么做跟别人一样的网站吗
  • 网盘做网站动漫设计制作专业学什么
  • wordpress建站上传不了图片桂林网红打卡地
  • 如何把网站推广室内设计装修用啥软件
  • 西坝河网站建设园林景观设计案例网站
  • 互联网公司网站建设怎样可以快速增加网站的反链
  • 橙色短信网站模板重庆网站模板平台建设
  • 海口网站建设优化公司专做动漫解说的网站
  • 做移动网站快速排名软件湖北住房和城乡建设厅网站
  • 南京网站的优化哈尔滨seo关键词优化
  • 郑州网站关键字优化北京网站设计研究与开发公司
  • 汕头住房和城乡建设厅网站宁波方太集团网站建设
  • 个人 建设图片分享网站营销网站结构
  • 网站后台上传文章格式手机电商平台怎么做的
  • 卖花网站源码建设网站企业注册人员
  • 金融网站模板 html下载山东济南网络科技有限公司
  • 网站首页html代码的企业邮箱注册需要什么材料
  • 官方网站下载派的app成都外包公司有哪些
  • 网站建设编辑教程网站被挂马怎么处理
  • 网站开发者取色工具wordpress标签伪静态态
  • 网站建设 媒体广告威龙电子商务做的网站
  • 网站如何识别移动端做网站 需要买云服务器吗
  • 南京企业网站设计建设区块链app排名
  • 信息化建设 网站如何提高网站在百度的排名
  • 网站后台密码忘记了西安百度提升优化
  • wordpress模板哪里买网站meta 优化建议