SQL连续数据的查询,查询最大连续签到的时长、查询连续人流量超过2w的日期。
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
场景场景一:需要查询最大连续签到的时长,一般用于toc的场景中 思路这种题目我一般常用的思路就是动转静,连续转不变。 例题体育馆人流量表 visit_date 是该表中具有唯一值的列。 Create table If Not Exists Stadium (id int, visit_date DATE NULL, people int) Truncate table Stadium insert into Stadium (id, visit_date, people) values ('1', '2017-01-01', 10) insert into Stadium (id, visit_date, people) values ('2', '2017-01-02', 109) insert into Stadium (id, visit_date, people) values ('3', '2017-01-03', 150) insert into Stadium (id, visit_date, people) values ('4', '2017-01-04', 99) insert into Stadium (id, visit_date, people) values ('5', '2017-01-05', 145) insert into Stadium (id, visit_date, people) values ('6', '2017-01-06', 1455) insert into Stadium (id, visit_date, people) values ('7', '2017-01-07', 199) insert into Stadium (id, visit_date, people) values ('8', '2017-01-09', 188) 例题解释体育馆的人流表,要求找出最少三天连续人流量超过100的数据,并且按照 实战做题目前先回顾下SqlServer中的一个函数 DATEADD(DAY,2,'2020-03-27');该函数可以在日期上进行加减,并且可以执行加减的日期部分,DAY表示天数增加。 按照思路,日期连续,那么可以生成一列行号,用日期与行号作差,如果结果相等则表示连续。 解题 生成行号需要自己创造动态列,比如自己添加行号列 步骤 为什么不用id还是需要自己创造行号。因为筛选掉人流量不够的数据后,id与时间的等差结果还是不会变,就会得到错误的数据,本身不满足的数据仍旧会被查询出来。 转自https://www.cnblogs.com/qwqwQAQ/p/18334689 该文章在 2024/8/2 15:15:42 编辑过 |
关键字查询
相关文章
正在查询... |