作者shadowjohn (某人睡醒就發文)
看板PHP
標題Re: [請益] 怎樣取得每日成績的前三名名單
時間Tue Aug 12 00:44:30 2014
※ 引述《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