题45:

根据下表编写 SQL 语句,对于每个 user_id ,求出每次访问及其下一个访问(若该次访问是最后一次,则为今天)之间最大的空档期天数 window ;返回结果表,按用户编号 user_id 排序。


其中:此表没有主键。此表含有用户访问某特定零售商的日期日志。

解题思路:
在做题之前需要了解lead()函数:
lead(expression,len,default value)over(partition by order by)
其中:

  • expression指的是lead作用的位置;
  • len表示向后的行数,如果省略则系统会默认为1;
  • default value是指如果当前位置没有后续行所返回的值,如果使用时省略,会返回null后面的over是窗口函数通用的。

第一步:利用datediff与lend函数算出空档期天数 window

select user_id,datediff(lead(visit_date,1,'2021-01-01') over(partition by user_id order by visit_date),visit_date) as a
from UserVisits

第二步:根据user_id分组和第一步合并即可。

select user_id,max(a) as biggest_window
from(select user_id,datediff(lead(visit_date,1,'2021-01-01') over(partition by user_id order by visit_date),visit_date) as afrom UserVisits
) tmp
group by user_id;

每日一题-45(访问日期之间最大的空档期)相关推荐

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

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

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

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

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

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

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

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

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

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

最新文章

  1. wcf 返回图片_WCF实现上传图片功能
  2. Java从入门到精通——数据库篇之JAVA中的对Oracle数据库操作
  3. 数据结构与算法JavaScript (一) 栈
  4. 使用CArchive类进行序列化
  5. 苹果cmsv10整合七牛云播放器插件
  6. 深耕“工业互联网”,华为云持续开花
  7. input传给java_java inputstream 传递给 py 处理
  8. 中国半导体制冷市场趋势报告、技术动态创新及市场预测
  9. HTML5实践 -- 使用css装饰你的图片画廊
  10. vector中resize()和reserve()区别
  11. pcl dll load failed: 找不到指定的模块。_解决cuda10.1+tensorflow-gpu出现“cudart64_100.dll”问题...
  12. 数电第二版 潘松 陈龙 第一章 答案
  13. 阿里面试官最新分享的Java面试宝典,含8大核心内容讲解
  14. windows内存占用过高
  15. oss新增bucket权限问题
  16. javascript设置网页快捷键
  17. Thinkpad T410加内存
  18. 记录:前端框架Bootstrap学习使用之组件——Collapse(折叠)
  19. 商务英语基础: 口语 | Essential Business English: Speaking
  20. uni-app:使用uni.downloadFile下载文件并保存到手机

热门文章

  1. 平安京服务器维护,阴阳师6月23日服务器维护更新内容一览
  2. 计算机的过去现在未来PPT,计算机的过去、现在和未来.ppt
  3. 北交大计算机在线作业,北交18秋《计算机应用基础》在线作业一
  4. AI智能外呼机器人网络拓扑结构笔记
  5. java分组校验_SpringBoot @Validated注解实现参数分组校验的方法实例
  6. 口腔取模过程及注意事项_防止取模变形的技巧
  7. 循环冗余校验 (CRC) 计算的C++ 代码
  8. 【庖丁解牛】jenkins安装出现提示“Please wait while Jenkins is getting ready to work”
  9. DWDM的原理以及其系统应用
  10. 维盟无线ap服务器地址,维盟无线AP划分不同SSID与VLAN组网设置教程