作者cutekid (可爱小孩子)
看板Database
标题Re: [SQL ] 取出排名前五的次数
时间Fri Nov 20 13:59:56 2015
解法:
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搭配子查询,可是都会卡住 囧
: 只好上来求助各位前辈><,希望能给点方向 感谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.221.80.36
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1447999199.A.745.html
1F:推 kajm: 谢谢,实际测试也顺利取得每个人排名前五的次数了~~感激不尽 11/20 19:52
※ 编辑: cutekid (210.61.233.210), 11/23/2015 15:01:33