您的位置:首页 > 数据库 > Oracle

oracle/mysql 分析函数

2011-08-10 14:48 337 查看
row_number() over(PARTITION BY channelcorpid ORDER BY channel_id

oracle 分析函数

一张表名为student的学生成绩分析表,字段u_id,course,score,分别为学生id,课程,分数,求每科成绩的前五名的u_id,course,score

SELECT uid,course ,score

FROM (SELECT b.course ,

b.score ,

b.uid,

IF(@course = b.course , @rank := @rank + 1, @rank := 1) AS rank,

@course := b.course

FROM (SELECT course , score, uid

FROM student

ORDER BY course ,score DESC) b,

(SELECT @rownum := 0, @course := NULL, @rank := 0) a) RESULT

where rank<=5;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: