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

看板Database作者 (kajm)時間10年前 (2015/11/19 19:38), 10年前編輯推噓2(202)
留言4則, 2人參與, 最新討論串1/2 (看更多)
各位前輩好, 最近碰到一個需求,要用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), 來自: 223.143.224.27 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1447933129.A.1E3.html ※ 編輯: kajm (220.133.198.233), 11/19/2015 21:14:56

11/19 21:22, , 1F
這樣的語法可以取得事件一的前五名?
11/19 21:22, 1F

11/19 21:27, , 2F
抱歉,最後少一行ORDER BY log.Score DESC @@
11/19 21:27, 2F
※ 編輯: kajm (220.133.198.233), 11/19/2015 21:27:51

11/20 00:04, , 3F
這真的能用嗎?
11/20 00:04, 3F

11/20 19:46, , 4F
c大: 謝謝,測試後的確可以跑 感激不盡><
11/20 19:46, 4F
文章代碼(AID): #1MJRJ97Z (Database)
文章代碼(AID): #1MJRJ97Z (Database)