一个有趣的查找--搜索最大值所在的ID号 (轉自:http://blog.csdn.net/dhlhh)

转载 2004年10月20日 14:36:00
朋友出了个题,各有A,B,C三人做游戏,记录第次得分,经几十次游戏后,成绩如下:

ID Name Score
1     a         88
2     b         76
3     c         66

4     c         90
5     b         77
6     a         56

7     b         77
8     c         67
9     a         44

......

当然还有很多red_smile.gif

要求搜索A,B,C三人各最好成绩,并且要列出最好成绩的序号即ID号
如:
ID Name Score
1     a         88
5     b         77
4     c         90

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

72_72.gif动脑:开始先想到这MAX函数:
SELECT MAX(Score), [Name] GROUP BY [Name]
但这该死的 ID 号怎么也插入不了

77_77.gif一线希望:用了个子查询:
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这个数,但不是最大值,所以......

wink_smile.gif胜利,最后加了个条件,使最大值集合中的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]
)

结果顺利出来结果
--------------------------------
或者:
select t.name,t.score,min(t.id) as id
from table1 t inner join
(select name,max(score) as score from table1 group by name) x on t.name=x.name and t.score=x.score
group by t.name,t.score

一个有趣的查找--搜索最大值所在的ID号

朋友出了个题,各有A,B,C三人做游戏,记录第次得分,经几十次游戏后,成绩如下:ID Name Score1     a         882     b         763     c    ...
  • dhlhh
  • dhlhh
  • 2004年10月14日 09:07
  • 1097

hibernate查找表中id最大的对象

直接上例子: @SuppressWarnings("unchecked") @Override public Integer queryMaxId() { String hql = "sele...
  • baicp3
  • baicp3
  • 2013年12月10日 18:54
  • 2337

容器中查找最大值所在的位置

vector dv; 假设dv 的数值已经赋值好了。 最大值所在的位置是 pos = (int) ( max_element(dv.begin(),dv.end()) - dv.begin() ...
  • woddle
  • woddle
  • 2014年05月29日 16:34
  • 1927

sql如何找到某字段的最大值所在行

首先,查找某字段的最大值select max(weight) from apple; 7888接着,根据最大值,查找其所在行select * from apple where weight =7888...
  • lanyang123456
  • lanyang123456
  • 2017年03月12日 21:30
  • 2449

二维数组;求一个3×4的矩阵中最大的那个元素的值,及其所在的行号和列号

/* 二维数组;求一个3×4的矩阵中最大的那个元素的值,及其所在的行号和列号 */ #include void main() { int i,j,row = 0 ,colum = 0,max; ...
  • garnett2003
  • garnett2003
  • 2011年02月18日 21:22
  • 11423

用键盘控制光标在输入框中跳转的小巧门 (轉自http://blog.csdn.net/dhlhh)

SendKeys.Send("+{TAB}");举例:private void txtMInfo_KeyDown(object sender, KeyEventArgs e){        // 向...
  • jasonlee0927
  • jasonlee0927
  • 2004年10月20日 14:33
  • 866

mysql查询最大值max()对应的记录值。

群里有人问。。开始以为  max() ,然后分组就可以。。结果试确实不行。。 正确方式如下: select myid,price,other from test as t    ...
  • wuxbeyond
  • wuxbeyond
  • 2016年04月21日 16:02
  • 12207

搜索一个class或者方法或者id写在哪个JS或CSS里面

查看页面上元素的事件,样式在哪里
  • cherrycheng_
  • cherrycheng_
  • 2016年06月06日 16:31
  • 537

数组中,查找最大值与最小值

  • A9925
  • A9925
  • 2016年04月21日 18:17
  • 227

求二维数组中的最大值及所在位置

 #include #include #define M 3#define N 4void main(){ int a[M][N],i,j,x=0,y=0,max; printf("please in...
  • huangyiyun
  • huangyiyun
  • 2008年09月07日 16:23
  • 1584
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个有趣的查找--搜索最大值所在的ID号 (轉自:http://blog.csdn.net/dhlhh)
举报原因:
原因补充:

(最多只允许输入30个字)