作者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://webptt.com/cn.aspx?n=bbs/PHP/M.1407775475.A.BB8.html
1F:→ shadowjohn: 如果要考虑同分同排名,加一下 group_concat 吧~:) 08/12 00:51
2F:推 onininon: 统神16分!! 08/12 11:43
3F:推 crossdunk: 罗礼士才101 你完蛋了你 08/12 12:08
4F:→ shadowjohn: 糟 查克在我背後 @!%^%&%*^(&*&()234@$@$ASFSGXB 08/12 12:59
5F:→ MOONRAKER: 你找不到查克的!他会来找你&*%$... 08/12 16:46
6F:推 jami520: 感谢,是我要的,真是专业! 08/12 17:45
7F:推 oread168: 发现野生onininon 08/13 21:57
8F:→ shadowjohn: 野生的 onininon~! 08/13 23:14
9F:推 nvizero: 感觉有点像作业.... 08/18 10:47