看板 PHP 關於我們 聯絡資訊
※ 引述《jami520 (我的生命因你而發光)》之銘言: : 目前有個資料表是儲存學生每天的成績單 db1 : (資料表欄位 name, score, gdate) : 我想取出每天前三名的學生姓名以及利用每天分數作排序,不曉得該怎樣撰寫mysql呢 : EX: : gdate score name : 8/11 96 小明 : 8/11 85 小王 : 8/11 73 小陳 : 8/10 88 小黃 : 8/10 86 小明 : 8/10 81 小忠 : 8/9 93 小王 : 8/9 91 小明 : 8/9 88 小黃 : ....... select rank,gdate,score,name from ( SELECT @rank:=if(@prev!=gdate,1,@rank:=@rank+1) as rank, @prev:=if(@prev!=gdate,gdate,@prev) as prev, gdate, score, name FROM getmon3 as a, ( select @prev:='', @rank:=0 ) as b ORDER BY gdate desc, score DESC ) as a where rank <= 3 得到結果如下: rank gdate score name 1 2014-08-11 100 小山 2 2014-08-11 99 小綠 3 2014-08-11 96 小陳 1 2014-08-10 99 小山 2 2014-08-10 77 小金 3 2014-08-10 60 小詹 1 2014-08-09 101 查克羅禮士 2 2014-08-09 16 統神 1 2014-08-08 87 小八 2 2014-08-08 73 小三 3 2014-08-08 66 小六 1 2014-08-07 69 阿金 不知道是不是你要的~ 以下是原內容... gdate 日期 score 分數 name 姓名 2014-08-11 96 小陳 2014-08-11 99 小綠 2014-08-11 85 阿九 2014-08-11 96 小明 2014-08-11 85 小王 2014-08-11 73 小陳 2014-08-11 69 小張 2014-08-11 100 小山 2014-08-10 99 小山 2014-08-10 60 小詹 2014-08-10 77 小金 2014-08-09 16 統神 2014-08-09 101 查克羅禮士 2014-08-08 73 小三 2014-08-08 66 小六 2014-08-08 87 小八 2014-08-07 69 阿金 -- 3WA訓練家的工作室 宗旨:諸葛單中,謝謝 個人佈弱格 網址:http://3wa.tw -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.240.250.239 ※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1407775475.A.BB8.html
shadowjohn: 如果要考慮同分同排名,加一下 group_concat 吧~:) 08/12 00:51
onininon: 統神16分!! 08/12 11:43
crossdunk: 羅禮士才101 你完蛋了你 08/12 12:08
shadowjohn: 糟 查克在我背後 @!%^%&%*^(&*&()234@$@$ASFSGXB 08/12 12:59
MOONRAKER: 你找不到查克的!他會來找你&*%$... 08/12 16:46
jami520: 感謝,是我要的,真是專業! 08/12 17:45
oread168: 發現野生onininon 08/13 21:57
shadowjohn: 野生的 onininon~! 08/13 23:14
nvizero: 感覺有點像作業.... 08/18 10:47