优秀的编程知识分享平台

网站首页 > 技术文章 正文

Excel零基础学SQL22:中式排名,美式排名,分组排名

nanyue 2024-10-20 07:43:32 技术文章 8 ℃

今天同样来做一个排名的练习。


1、按评分进行排名,100分为第1.

1.1、美式排名

select b.姓名,b.评分,

(select count(*) from [sheet5$] a where a.评分>b.评分)+1 as 排名

from [sheet5$] b

order by b.评分 desc

1.2、中式排名

select b.姓名,b.评分,

(

select count(*) from

(select distinct 评分 from [sheet5$]) a where a.评分>b.评分

)+1 as 排名

from [sheet5$] b

order by b.评分 desc

中式排名需要对评分进行去重复,然后再进行比较,见下面的SQL语句

select distinct 评分 from [sheet5$]


2、分组排名

在【1】的基础上where后面的条件多增加组别的比较即可得出结果。

【美式排名SQL代码】

select b.组别,b.姓名,b.评分,

(

select count(*) from [sheet5$a1:c] a where a.组别=b.组别 and a.评分>b.评分

)+1 as 排名

from [sheet5$a1:c] b

order by b.组别,b.评分 desc

【中式排名SQL代码】

select b.组别,b.姓名,b.评分,

(

select count(*) from

(select distinct 组别,评分 from [sheet5$a1:c]) a

where a.组别=b.组别 and a.评分>b.评分

)+1 as 排名

from [sheet5$a1:c] b

order by b.组别,b.评分 desc

将B组刘备的评分改为96,然后刷新表格。

中式排名关键操作是对组别、评分同时去除重复,然后比较。

最近发表
标签列表