发布网友 发布时间:2022-04-24 12:41
共1个回答
热心网友 时间:2022-05-08 11:53
RANK(number,
ref,
order)
注意
Number
必须有一个数字值
;
ref
必须是一个数组或单元格区域包含数字数据值
;
是可选的
order。如果省略
order,或者将它分配一个值为
0
(零)
number
排位是数字的数字的在
ref
中
number
位置,如果
ref
数字的数字的按降序顺序排序。如果
order
分配任何非零值,假定
ref
为排名按升序排序。
用法的示例
以下用一个成绩表作示例
table
架构
s_score(s_class(班级),s_id(学号),s_score(分数))
SQL
statement1:
Select
rank()
over(order
by
s_score
desc)
as
名次,s_class,s_id,s_score
from
s_score
结果集如下
名次
s_class
s_id
s_score
1
二班
S20090733
100
2
一班
S20090635
99
3
三班
S20090919
97
4
一班
S20090846
96
5
一班
S20090825
95
6
二班
S20090715
94
7
三班
S20090836
91
8
二班
S20090631
86
SQL
statement2:
Select
rank()
over(partition
by
s_class
order
by
s_score
desc)
as
名次,s_class,s_id,s_score
from
s_score
结果集如下
名次
s_class
s_id
s_score
1
三班
S20090919
97
2
三班
S20090836
91
1
二班
S20090733
100
2
二班
S20090715
94
3
二班
S20090631
86
1
一班
S20090635
99
2
一班
S20090846
96
3
一班
S20090825
95
再举列一个比较简单的,这样子更容易看明白:
假如A列从A1单元格起,依次有数据80、98、65、79、65。
在B1中编辑公式
=RANK(A1,$A$1:$A$5,0)
回车确认后,向下复制公式到B5单元格。
效果:
从B1单元格起依次返回值为2、1、4、3、4。
注意:
公式中的参数0(零)或省略,Excel
对数字的排位是把数据从大到小的降序排列,也就是说数值最大的排名第1。
再试试看:
在C1中编辑公式
=RANK(A1,$A$1:$A$5,1)
回车确认后,向下复制公式到B5单元格。
此时从C1单元格起依次返回的值是4、5、1、3、1。
也就是说,此时A列中数据是按从小到大排列名次的,最小的数值排位第1,最大的数值排位最末
【如何使用RANK
平均的等级值为*的观察值】
将数字数据转换为秩时,
可能要用于表示扎以便*的观察每个接收的平均等级上的最小可能的秩而不是所有此类的观察值。在这篇文章中数值的示例阐释这一点。