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

看板Database作者 (可愛小孩子)時間10年前 (2015/11/20 13:59), 10年前編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
解法: 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://www.ptt.cc/bbs/Database/M.1447999199.A.745.html

11/20 19:52, , 1F
謝謝,實際測試也順利取得每個人排名前五的次數了~~感激不盡
11/20 19:52, 1F
※ 編輯: cutekid (210.61.233.210), 11/23/2015 15:01:33
文章代碼(AID): #1MJhRVT5 (Database)
文章代碼(AID): #1MJhRVT5 (Database)