表: UserVisits

Column Name Type
user_id int
visit_date date

该表没有主键。
该表包含用户访问某特定零售商的日期日志。

问题

假设今天的日期是 ‘2021-1-1’ 。

编写 SQL 语句,对于每个 user_id ,求出每次访问及其下一个访问(若该次访问是最后一次,则为今天)之间最大的空档期天数 window 。

返回结果表,按用户编号 user_id 排序。

示例

UserVisits 表:

user_id visit_date
1 2020-11-28
1 2020-10-20
1 2020-12-3
2 2020-10-5
2 2020-12-9
3 2020-11-11

结果表:

user_id biggest_window
1 39
2 65
3 51

对于第一个用户,问题中的空档期在以下日期之间:
- 2020-10-20 至 2020-11-28 ,共计 39 天。
- 2020-11-28 至 2020-12-3 ,共计 5 天。
- 2020-12-3 至 2021-1-1 ,共计 29 天。
由此得出,最大的空档期为 39 天。
对于第二个用户,问题中的空档期在以下日期之间:
- 2020-10-5 至 2020-12-9 ,共计 65 天。
- 2020-12-9 至 2021-1-1 ,共计 23 天。
由此得出,最大的空档期为 65 天。
对于第三个用户,问题中的唯一空档期在 2020-11-11 至 2021-1-1 之间,共计 51 天。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/biggest-window-between-visits
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解答

LEAD(col, offset, default)

col - 指你要操作的那一列
offset - 偏移几行,如果是1就是下1行,以此类推
default - 如果下一行不存在,用什么值填充

select user_id,max(datediff(next_day,visit_date)) biggest_window
from (select user_id,visit_date,lead(visit_date,1,'2021-1-1') over(partition by user_id order by visit_date) next_dayfrom userVisits) t
group by user_id
order by user_id

leetcode中等之1709.访问日期之间最大的空档期相关推荐

  1. 【LC中等】1709. 访问日期之间最大的空档期

    ❤️博客主页: 楚生辉 ❤️系列专栏:[LeetCode刷题] ❤️一句短话: 坚持不懈,孜孜不倦 1.题目描述 表: UserVisits +-------------+------+ | Colu ...

  2. <数据库> LEAD函数的用法 Leetcode 1709. 访问日期之间最大的空档期

    对于一张表的一行数据而言,在其之上的是Lag, 在其之下的是Lead +---------+------------+         LAG()  ------------------------ ...

  3. 1683. 无效的推文 1693. 每天的领导和合伙人 1699. 两人之间的通话次数 1709. 访问日期之间最大的空档期

    char_length(str)[空格不是字符] (1)计算单位:字符 (2)不管汉字还是数字或者是字母都算是一个字符 length(str)[空格不是字符] (1)计算单位:字节 (2)utf8编码 ...

  4. leetcode 1709. 访问日期之间最大的空档期---窗口函数lead

    访问日期之间最大的空档期 题目分析:题目要求按照不同的id计算出空档期,当前最新的时间是2021-01-01.简单来说,就是按照日期进行排序后计算前后日期之间差距.我们可以使用lead函数把后面的日期 ...

  5. 【LeetCode-SQL】1709. 访问日期之间最大的空档期

    目录 一.题目 二.解决 1.lead() 2.UNION ALL+INNER JOIN+min()+max() 三.参考 一.题目 表: UserVisits +-------------+---- ...

  6. 1709. 访问日期之间最大的空档期

    SQL架构 表: UserVisits +-------------+------+ | Column Name | Type | +-------------+------+ | user_id | ...

  7. 1709. 访问日期之间最大的空档期(SQL)

    题目:https://leetcode-cn.com/problems/biggest-window-between-visits/ 表: UserVisits +-------------+---- ...

  8. Leetcode Mysql 1709. 访问日期之间最大的空档期(DAY 14)

    文章目录 原题题目 代码实现(首刷学习 Lead函数) 原题题目 代码实现(首刷学习 Lead函数) # Write your MySQL query statement below SELECT u ...

  9. LeetCode(数据库)- 访问日期之间最大的空档期

    题目链接:点击打开链接 题目大意:略. 解题思路:注意 LEAD / LAG 函数. AC 代码 -- 解决方案(1) WITH t1 AS (SELECT DISTINCT user_id, '20 ...

最新文章

  1. 人工检查,11 个类、97942 个标签,Roboflow 开源自动驾驶数据集可以使用啦
  2. C++接收字符串数组_C++模拟面试:从数组“紧凑”操作说开来
  3. 【Effective Java】3.单例
  4. python jenkins库 api简介
  5. 设置socket.Receive()的等待时延
  6. 简单的加密/解密算法_/c++
  7. 架构之:微服务架构漫谈
  8. 操作RadGrid1,RadAjaxLoadingPanel1不出现
  9. C++ STL list输出和增加
  10. JavaScript数据结构——栈(Stack)
  11. android_ratingbar的使用错误
  12. CICD详解(六)——SVN+Jenkins项目控制实战
  13. leg引擎适合什么系统的服务器,第一讲 LEG引擎服务端更新BLUE引擎
  14. 学习日志2:ARM开发板—触摸屏
  15. 2010十大杰出IT博客大赛50强之李晨光
  16. 结合实际案例谈谈项目管理经验
  17. 百度飞桨EasyDL X 韦士肯:看轴承质检如何装上“AI之眼”
  18. mPEG-Phosphate,甲氧基聚乙二醇磷酸盐,mPEG-PHOS
  19. 动网php_动网(DVBBS)PHP论坛preview.php代码执行漏洞
  20. 青岛新媒体运营教程:三步浅谈活动运营,拆解策划实施

热门文章

  1. 免是计算机科学与技术,西南交大计算机科学与技术2016免研课程.docx
  2. spring boot + vue实现图片上传及展示
  3. 血杀英雄为什么不显示服务器,《血杀英雄》不知道该怎么玩?看了这个就懂了...
  4. hibernate的查询条件lt_hibernate的多条件查询——Criteria Query的应用
  5. 华为手机主页面显示一半_华为手机有47个状态显示图标,网友吐槽:60%类似其他国产厂商...
  6. Scale-Equalizing Pyramid Convolution for Object Detection 论文笔记
  7. 画质增强概述-2-应用场景
  8. 【庖丁解牛】成功解决yum安装mysql时报错libmysqlclient.so.18
  9. FFmpeg滤镜:去台标
  10. 计算机和建筑的影响,计算机应用于建筑设计中的影响