Re: [SQL ] 取出排名前五的次数

楼主: cutekid (可爱小孩子)   2015-11-20 13:59:56
解法: http://sqlfiddle.com/#!3/48f5a/13
里面有用到 mssql:
1. 排名的技巧: dense_rank() over (partition by ... order by ...)
2. count condition 的技巧
可能板上以后也会有人有需要用到
※ 引述《kajm (kajm)》之铭言:
: 各位前辈好,
: 最近碰到一个需求,要用SQL取得某一个使用者在各事件中排名前五的次数。
: 我想法是先取得某一次事件的前五:
: SELECT TOP 5 log.Score, log.UserId
: FROM Events e, EventLog log
: WHERE e.EventNo = log.EventNo
: AND e.EventNo = 1
: ORDER BY log.Score DESC;
: Events这张表是纪录有哪些事件
: EventLog则是纪录某事件里每个人的分数
: 虽然上面的SQL可以顺利取出事件1里面的前五名,
: 可是要改成取出所有事件的前五名就卡住了…
: 有稍微试过用GROUP BY搭配子查询,可是都会卡住 囧
: 只好上来求助各位前辈><,希望能给点方向 感谢!
作者: kajm (kajm)   2015-11-20 19:52:00
谢谢,实际测试也顺利取得每个人排名前五的次数了~~感激不尽

Links booklink

Contact Us: admin [ a t ] ucptt.com