题解 | #牛客每个人最近的登录日期(二)#

牛客每个人最近的登录日期(二)

http://www.nowcoder.com/practice/7cc3c814329546e89e71bb45c805c9ad

这个题目给出的表格信息很容易迷惑人,三表都有相同的字段id,这在入手时很容易想到用id连接三表,但观察之后发现并不是这样,第一个表的id不能作为表连接时的条件,而是用第一个表的user_id,client_id分别对应第二和第三个表的id,连接之后再使用窗口函数运算就比较简单了。代码如下:

select t.un,t.cn,date from
(select u.name un,c.name cn,date,rank()over(partition by user_id order by date desc) rk 
from login g 
left join user u on g.user_id = u.id
left join client c on g.client_id = c.id) as t
where t.rk = 1
order by t.un
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务