2024年06月04日 SQL中的RANK函数详解 极客笔记
在SQL中,RANK() 函数是一种窗口函数,可以用来对结果集中的行进行排名操作。通过RANK() 函数,我们可以快速地对数据进行排名,并且可以根据需要进行分组排名。本文将详细解释RANK() 函数的用法,语法以及示例。
RANK() 函数的语法如下:
RANK() OVER (
[PARTITION BY column_list]
ORDER BY column_list [ASC | DESC]
)
假设我们有一个名为students
的表,包含学生的姓名(name)、课程(course)以及成绩(score)信息。我们想要对每个课程的学生成绩进行排名,示例数据如下:
CREATE TABLE students (
name VARCHAR(50),
course VARCHAR(50),
score INT
);
INSERT INTO students (name, course, score) VALUES
('Alice', 'Math', 85),
('Bob', 'Math', 90),
('Carol', 'Math', 88),
('David', 'Math', 82),
('Alice', 'English', 75),
('Bob', 'English', 88),
('Carol', 'English', 92),
('David', 'English', 80);
现在,我们使用RANK() 函数对每个课程的学生成绩进行排名,示例如下:
SELECT
name,
course,
score,
RANK() OVER (PARTITION BY course ORDER BY score DESC) AS rank
FROM students;
运行以上SQL语句,得到如下结果:
name | course | score | rank
-------+---------+-------+------
Alice | Math | 85 | 2
Bob | Math | 90 | 1
Carol | Math | 88 | 1
David | Math | 82 | 4
Alice | English | 75 | 3
Bob | English | 88 | 1
Carol | English | 92 | 1
David | English | 80 | 2
从上面的结果可以看出,我们使用RANK() 函数根据每个课程的成绩进行排名,得到了每个学生在各自课程中的排名。
通过本文的介绍,相信读者已经对RANK() 函数有了一定的了解,并且可以应用到实际的数据分析和处理中。
本文链接:http://so.lmcjl.com/news/5923/