LeetCode(数据库)- 获取最近第二次的活动

简介: LeetCode(数据库)- 获取最近第二次的活动

题目链接:点击打开链接

题目大意:略。

解题思路

1、最近第二次:指的是倒数第二大的日期

2、解决方案(1):在一个用户有多个活动的情况下先把最大的日期的给过滤掉,这样只要统一二次筛选最大值即可

3、解决方案(2):通过动态 WHERE 去筛选

AC 代码

--解决方案(1)
selectu.*fromUserActivityuwhere (u.username, u.startDate) in(
selecta.username, max(a.startDate) 
fromUserActivityawhere (a.username, a.startDate) notin (
selectb.username, max(b.startDate)
fromUserActivitybgroupbyb.usernamehavingcount(b.username) >1    ) 
groupbya.username)
--解决方案(2)
WITHt1AS(SELECT*, ROW_NUMBER() OVER(PARTITIONBYusernameORDERBYendDateDESC) rwFROMUserActivity)
SELECTusername, activity, startDate, endDateFROMt1t1_1WHEREIF((SELECTrwFROMt1t1_2WHERErw=2ANDusername=t1_1.username) ISNULL, rw=1, rw=2)
目录
相关文章
|
数据库
LeetCode(数据库)- 活跃用户
LeetCode(数据库)- 活跃用户
77 0
LeetCode(数据库)- 活跃用户
|
数据库
LeetCode(数据库)- 学生们参加各科测试的次数
LeetCode(数据库)- 学生们参加各科测试的次数
96 0
|
数据库
LeetCode(数据库)- 过去30天的用户活动 II
LeetCode(数据库)- 过去30天的用户活动 II
83 0
|
数据库
LeetCode(数据库)- 找到遗失的ID
LeetCode(数据库)- 找到遗失的ID
97 0
|
测试技术 数据库
LeetCode(数据库)- 每次访问的交易次数
LeetCode(数据库)- 每次访问的交易次数
211 0
|
数据库
LeetCode(数据库)- 活动参与者
LeetCode(数据库)- 活动参与者
99 0
|
数据库
LeetCode(数据库)- 求关注者的数量
LeetCode(数据库)- 求关注者的数量
94 0
|
数据库
LeetCode(数据库)- 大满贯数量
LeetCode(数据库)- 大满贯数量
108 0
|
数据库
LeetCode(数据库)- 院系无效的学生
LeetCode(数据库)- 院系无效的学生
95 0
|
数据库
LeetCode(数据库)- 寻找没有被执行的任务对
LeetCode(数据库)- 寻找没有被执行的任务对
93 0