题解 | #插入记录(二)#

注册时间最早的三个人

http://www.nowcoder.com/practice/fbe36305c6dd4954a05cc2f2f12e4f4a

SELECT uid, nick_name ,register_time
FROM user_info
ORDER BY register_time
LIMIT 3

SELECT t.uid, t.nick_name , t.register_time
FROM
(SELECT uid, nick_name ,register_time,
 ROW_NUMBER() OVER(ORDER BY register_time ASC) rk
 FROM user_info
) t
WHERE rk<=3

注意:用窗口函数的时候,只能用ROW_NUMBER(),不可以用RANK()和DENSE_RANK() 原因如下:

ROW_NUMBER(): 排名时不管是否有相同的,都按1,2,3...n排名,(相同的排名先后应该是看表格的第一字段,若相同再看第二个字段排名,以此类推)(我猜测的)

RANK(): 如果排名的字段有相同的,会将相同的字段并列排名,并跳过后面的排名,

DENSE_RANK(): 如果排名的字段有相同的,会将相同的字段并列排名,但是不会跳过后面的排名

WHERE 子句这里 rk<=3,如果时间有相同的,用RANK()和DENSE_RANK()筛选出来的会大于3个

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 18:35
简历上把1个月实习写成了3个月,会进行背调吗?
码农索隆:一个月有一个月的实习经历,三个月有三个月的实习经历
点赞 评论 收藏
分享
每晚夜里独自颤抖:这个在牛客不是老熟人了吗
点赞 评论 收藏
分享
lllllkin:感觉可以精简到一页简历,有些排版感觉不是必须的。 时间线越早的,你自己越熟悉的放前面。描述可以更精简些,一些问题解决感觉可以不用写具体技术栈,卖个关子,等面试官问。
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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