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