SQL(MySQL + PHP) 查询,查询排名,表内一个人多条数据,查出最大的那条排名,请问! 15

现在表里的大概的情况是这样的:idnamescoredateround1abc1002012-11-1212abc1052012-11-1313abc1082012-11... 现在表里的大概的情况是这样的:

id name score date round
1 abc 100 2012-11-12 1
2 abc 105 2012-11-13 1
3 abc 108 2012-11-14 1
4 opq 159 2012-11-13 1
5 opq 180 2012-11-14 1
6 opq 182 2012-11-15 1
7 abc 132 2012-11-15 1
8 bbb 201 2012-11-11 2
9 eee 199 2012-11-11 1
10 eee 200 2012-11-14 1

也就是说,表中有多人、多天、多轮(round)的分数,现在要查询特定的一轮的最高分人名排名,比如我就想知道第一轮(round = 1) 的排名,也就是想要查询前三名:

eee 200
opq 182
abc 132

(也就是每个人只保留最高结果,像是 eee 的199分,虽然排名第二,但是不被查询出来,因为eee有200分,更高)

请问怎么写?谢谢!!!
展开
 我来答
知识阅历积累历程

2013-01-06 · 影视爱好者、游戏达人、IT 男
知识阅历积累历程
采纳数:10964 获赞数:6546

向TA提问 私信TA
展开全部
直接使用一条查询语句就能解决了。
select * from 你的表名 order by score desc limit 3
如果只要查name score的话。则是:
select name,score from 你的表名 order by score desc limit 3
说明:order by score desc -----按score降序排序
limit 3取3条数据。
追问
这样首先没有区分 round,就是没有确定是哪一轮。
第二个问题更关键,就是可能出现
eee 200
eee 199
opq 182
的情况,我不想让 eee 出现两次,只要一次。
追答
只要出现一次的话可以使用这样写:
select *,count(distinct name),max(score) from 表名 group by name order by max(score) desc limit 3
其中你的值是最后一项max(score)
distinct就是去除重复的。
WoWnePiece
2013-01-09 · 超过23用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:35.8万
展开全部
select name,score,round from (select * from sqlTest order by score desc) as tab group by name having round= 1 order by score desc,name;

+------+-------+-------+
| name | score | round |
+------+-------+-------+
| eee | 200 | 1 |
| opq | 182 | 1 |
| abc | 132 | 1 |
+------+-------+-------+

是这个效果不?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沙2011
2013-01-06 · TA获得超过1851个赞
知道小有建树答主
回答量:1043
采纳率:100%
帮助的人:781万
展开全部
这个好写

用分组

按name来分组

取最多的score

取出前三条
追问
啊谢谢,能具体讲讲吗?我是新手啊!如果能具体讲讲绝对把悬赏分给你啦!
追答
你看我在乎你那点悬赏吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d087e87ca
2013-01-06
知道答主
回答量:74
采纳率:0%
帮助的人:27.7万
展开全部
select * from table-name where round = 1 group by name order by score desc limit 3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式