SQL架构

表: 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 天。

题解

select user_id, max(windows) as biggest_window
from (select user_id, datediff(lead(visit_date, 1, "2021-01-01") over (partition by user_id order by visit_date asc), visit_date) as windows from UserVisits) as temp
group by user_id;

LeeCode1709. 访问日期之间最大的空档期相关推荐

  1. lead 函数 ——《访问日期之间最大的空档期》LeetCode Plus 会员专享题【详细解析】Hive / MySQL

    大家早上好,本人姓吴,如果觉得文章写得还行的话也可以叫我吴老师.欢迎大家跟我一起走进数据分析的世界,一起学习! 感兴趣的朋友可以关注我的数据分析专栏,里面有许多优质的文章跟大家分享哦. 另外也欢迎大家 ...

  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中等之1709.访问日期之间最大的空档期

    表: UserVisits Column Name Type user_id int visit_date date 该表没有主键. 该表包含用户访问某特定零售商的日期日志. 问题 假设今天的日期是 ...

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

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

最新文章

  1. 记录一些精品开源项目
  2. RobHess的SIFT代码解析之RANSAC
  3. C语言试题四之计算并输出3到n之间所有素数的平方根之和
  4. mysql sql 一部分记录_MySQL性能优化实践(很全面,值得收藏)
  5. deeplung代码实现主题讲解
  6. python ** 运算符_Python语法基础(2)运算符
  7. 基于Redis的用户发微博
  8. PHP批量去除PHP文件中bom的代码
  9. noip 2010 引水入城(dfs + 贪心)
  10. CTP:rust封装找不到thostmduserapi_se、thosttraderapi_se问题
  11. 振铃效应与样点自适应补偿(Sample Adaptive Offset,SAO)技术
  12. NOIP2018 摸鱼记
  13. VS985破解电信4G或联通4G
  14. Windows电脑桌面云便签快捷键怎么查看?
  15. vue图片裁剪功能的实现
  16. 深度学习概念名词解释总结
  17. 计算机网络术语总结1
  18. php sapi模式,PHP中的SAPI是什么?如何实现?(图文)
  19. 苹果宣布推出新的Mac Mini和MacBook Pro与M2 Pro和M2 Max
  20. 百度搜索の黑话大全—那些不为人知的搜索引擎语法

热门文章

  1. 海思芯片查看系统内存和mmz内存的命令
  2. iWatch 开发 2:创建一个简单的Apple watch应用
  3. poj2236 Wireless Network
  4. 数据中心综合布线可视化运维管理平台
  5. 基于Web的电子商城销售系统
  6. PHP codesniffer 配置,如何配置PHP CodeSniffer让我的case语句按照我喜欢的方式缩进?...
  7. 在shell脚本中使用sudo
  8. 手机微信里面接收好友的文档怎么打印
  9. 如何使用Colormaps和自定义自己喜欢的colorbar?
  10. PostgreSQL 14中TOAST的新压缩算法LZ4,它有多快?