后台回复:1024,获取海量学习资源 往期热文
大家好,我是岳哥。
今天在某职场社交平台上看到一个帖子,楼主分享了他的求职故事,引发了广泛的讨论。
这位朋友在经历了 9 个月的空窗期后,终于找到了一份新工作。然而,这份工作并不完全符合他的期望:薪水下降了10%,而工作时间却比以前更长。
一些网友觉得降薪而且工作更辛苦会导致内心不甘,会体现在工作态度上,进一步导致不好的结果,建议楼主调整好心态。楼主无奈的表示先活下去,熬过寒冬再说。
也有一些网友认为空窗期比降薪更可怕,有个机会总比没有的强,先把空窗期补了再说。
目前虽然说今年的校招比去年的校招有所好转,但社招还是有点难,认识不少朋友的处境挺尴尬的,找了好几个月终于找到工作,但薪资并不满意,去还是不去都是个问题,互联网寒冬并没有远去。
以下是今天的SQL干货
编写一个 SQL 查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。
例如,根据上述给定的 T20191102表,你的查询应该返回(按分数从高到低排列):
参考答案
--MySQL 8.0和SQL Server
create table T20191102
(ID int,
Score int
);
insert into T20191102 values (1,80);
insert into T20191102 values (2,75);
insert into T20191102 values (3,89);
insert into T20191102 values (4,80);
insert into T20191102 values (5,71);
select ID,Score,
DENSE_RANK() over(order by score desc) RK
from T20191102
--MySQL 8.0和SQL Server
create table T20191102
(ID int,
Score int
);
insert into T20191102 values (1,80);
insert into T20191102 values (2,75);
insert into T20191102 values (3,89);
insert into T20191102 values (4,80);
insert into T20191102 values (5,71);
select ID,Score,
DENSE_RANK() over(order by score desc) RK
from T20191102
解析
DENSE_RANK()是一个排序开窗函数,它的特点是排序顺序即使有相同的,排序依然连续的,区别于RANK()开窗函数(RANK()开窗函数是有相同排名则会跳跃不连续)
参考链接:SQL中的排名问题
·················END················· 推荐一下我的小报童《SQL145题》,集合了145道日常工作中遇到的面试题和笔试题,所有题目均通过测试,目前买断价仅需10元,分享他人购买还可挣5元佣金,长按下方二维码即可订阅。