Re: [請益] 怎樣取得每日成績的前三名名單

看板PHP作者 (某人睡醒就發文)時間9年前 (2014/08/12 00:44), 編輯推噓5(504)
留言9則, 7人參與, 最新討論串2/2 (看更多)
※ 引述《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

08/12 00:51, , 1F
如果要考慮同分同排名,加一下 group_concat 吧~:)
08/12 00:51, 1F

08/12 11:43, , 2F
統神16分!!
08/12 11:43, 2F

08/12 12:08, , 3F
羅禮士才101 你完蛋了你
08/12 12:08, 3F

08/12 12:59, , 4F
糟 查克在我背後 @!%^%&%*^(&*&()234@$@$ASFSGXB
08/12 12:59, 4F

08/12 16:46, , 5F
你找不到查克的!他會來找你&*%$...
08/12 16:46, 5F

08/12 17:45, , 6F
感謝,是我要的,真是專業!
08/12 17:45, 6F

08/13 21:57, , 7F
發現野生onininon
08/13 21:57, 7F

08/13 23:14, , 8F
野生的 onininon~!
08/13 23:14, 8F

08/18 10:47, , 9F
感覺有點像作業....
08/18 10:47, 9F
文章代碼(AID): #1JwFBpku (PHP)
文章代碼(AID): #1JwFBpku (PHP)