您当前位置:万博主管找696121q >> 奇闻 >> 浏览文章

亚洲必赢365-澳门永利网站登录不了

所属栏目: 奇闻资讯    发布时间: 2019-06-01   文章来源:

朋友出了个题,各有a,b,c三人做游戏,记录第次得分,经几十次游戏后,成绩如下:

idname score
1 a 88
2 b 76
3 c 66

4 c 90
5 b 77
6 a56

7 b 77
8 c 67
9 a 44

……

当然还有很多

要求搜索a,b,c三人各最好成绩,并且要列出最好成绩的序号即id号
如:
idname score
1 a 88
5 b 77
4 c 90

最初我觉得好象是初级的题,把眼光放在最大值上,但随后就觉得这重点不在最大值上,而是最大值所在的id号。
题目难点:搜索出最大值所在的 id 号
例外情况:每个人都可能出现几个最大的值

动脑:开始先想到这max函数:
select max(score), [name] group by [name]
但这该死的 id 号怎么也插入不了

一线希望:用了个子查询:
select [id],[name],score
from table1 a
where score in
(select max(b.score) as maxscore
from table1 b
group by b.[name] )
可是,这 id 号还是多出来了,原因是由于该搜索是以最大值的集合作依据,如77这个最大值,可能是b的最大值,但是a和c可能也会出现77这个数,但不是最大值,所以……

胜利,最后加了个条件,使最大值集合中的name值,与搜索的name值相符合
select [id],[name],score
from table1 a
where score in
(select max(b.score) as maxscore
from table1 b
group by b.[name] having a.[name]=b.[name] )

结果顺利出来结果
往往是不起眼的问题,很费脑

以上就是获取数据库最大id 一个有趣的查找–搜索最大值所在的ID号-的全部内容。更多奇闻资讯,请关注万博主管找696121q奇闻资讯频道!
相关阅读
最新文章
图文阅读