RANK函数的相关解答?
1个回答

简介

T_sql 函数

rank()函数返回结果集分区内指定字段的值的排名,指定字段的值的排名是相关行之前的排名加一.

语法:

RANK() OVER([])

partition_by_clause 将from子句生成的结果集划分为应用到RANK函数的分区.

Order_by_clause确定将RANK值应用到分区中的行时所使用的顺序.

以下用一个成绩表作示例,

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