plsql排序集

2018-09-05 10:15 更新

想限制排序方式可以用分析函数 求出各科前3名 SELECT STUDENT_ID,NAME,COURSE,SCORE,RANK FROM (SELECT STUDENT_ID,NAME,COURSE,SCORE, ROW_NUMBER() OVER (PARTITION BY COURSE ORDER BY SCORE DESC NULLS LAST) RANK FROM SCORE) WHERE RANK <= 3; STUDENT_ID NAME COURSE SCORE RANK


2 喜羊羊 数学 100 1
3 机器猫 数学 80 2
4 蓝精灵 数学 80 3
1 灰太狼 语文 5 1
Oracle分析函数 朱元中
2013-01-17 page 21
ROW_NUMBER()
SELECT STUDENT_ID,NAME,COURSE,SCORE,
DENSE_RANK() OVER (PARTITION BY COURSE
ORDER BY SCORE DESC NULLS LAST) RANK
FROM SCORE;
STUDENT_ID NAME COURSE SCORE RANK
---------- -------- ------ ---------- -----
2 喜羊羊 数学 100 1
3 机器猫 数学 80 2
4 蓝精灵 数学 80 2
5 Darwin 数学 50 3
1 灰太狼 数学 4
1 灰太狼 语文 5 1
SELECT STUDENT_ID,NAME,COURSE,SCORE,RANK
FROM (SELECT STUDENT_ID,NAME,COURSE,SCORE,
DENSE_RANK() OVER (PARTITION BY COURSE
ORDER BY SCORE DESC NULLS LAST) RANK
FROM SCORE)
WHERE RANK <= 3;
STUDENT_ID NAME COURSE SCORE RANK
---------- -------- ------ ---------- -----
2 喜羊羊 数学 100 1
3 机器猫 数学 80 2
4 蓝精灵 数学 80 2
5 Darwin 数学 50 3
1 灰太狼 语文 5 1
SELECT STUDENT_ID,NAME,COURSE,SCORE,
RANK() OVER (PARTITION BY COURSE
ORDER BY SCORE DESC NULLS LAST) RANK
FROM SCORE;
STUDENT_ID NAME COURSE SCORE RANK
---------- -------- ------ ---------- -----
2 喜羊羊 数学 100 1
3 机器猫 数学 80 2
4 蓝精灵 数学 80 2
5 Darwin 数学 50 4
1 灰太狼 数学 5
1 灰太狼 语文 5 1
SELECT STUDENT_ID,NAME,COURSE,SCORE,RANK
FROM (SELECT STUDENT_ID,NAME,COURSE,SCORE,
RANK() OVER (PARTITION BY COURSE
ORDER BY SCORE DESC NULLS LAST) RANK
FROM SCORE)
WHERE RANK <= 3;
STUDENT_ID NAME COURSE SCORE RANK
---------- -------- ------ ---------- -----
2 喜羊羊 数学 100 1
3 机器猫 数学 80 2
4 蓝精灵 数学 80 2
1 灰太狼 语文 5 1
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号