一个有趣的查找--搜索最大值所在的ID号
2008-04-26 22:27
351 查看
朋友出了个题,各有A,B,C三人做游戏,记录第次得分,经几十次游戏后,成绩如下:
ID NameScore
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
......
当然还有很多
要求搜索A,B,C三人各最好成绩,并且要列出最好成绩的序号即ID号
如:
ID NameScore
1 a 88
5 b 77
4 c 90
最初我觉得好象是初级的题,把眼光放在最大值上,但随后就觉得这重点不在最大值上,而是最大值所在的ID号。
题目难点:搜索出最大值所在的ID号
例外情况:每个人都可能出现几个最大的值
动脑:开始先想到这MAX函数:
SELECTMAX(Score),[Name]GROUPBY[Name]
但这该死的ID号怎么也插入不了
一线希望:用了个子查询:
SELECT[ID],[Name],Score
FROMTable1a
WHEREScoreIN
(SELECTMAX(b.Score)ASMAXScore
FROMTable1b
GROUPBYb.[Name])
可是,这ID号还是多出来了,原因是由于该搜索是以最大值的集合作依据,如77这个最大值,可能是B的最大值,但是A和C可能也会出现77这个数,但不是最大值,所以......
胜利,最后加了个条件,使最大值集合中的Name值,与搜索的Name值相符合
SELECT[ID],[Name],Score
FROMTable1a
WHEREScoreIN
(SELECTMAX(b.Score)ASMAXScore
FROMTable1b
GROUPBYb.[Name]HAVINGa.[Name]=b.[Name])
结果顺利出来结果
往往是不起眼的问题,很费脑
ID NameScore
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
......
当然还有很多
要求搜索A,B,C三人各最好成绩,并且要列出最好成绩的序号即ID号
如:
ID NameScore
1 a 88
5 b 77
4 c 90
最初我觉得好象是初级的题,把眼光放在最大值上,但随后就觉得这重点不在最大值上,而是最大值所在的ID号。
题目难点:搜索出最大值所在的ID号
例外情况:每个人都可能出现几个最大的值
动脑:开始先想到这MAX函数:
SELECTMAX(Score),[Name]GROUPBY[Name]
但这该死的ID号怎么也插入不了
一线希望:用了个子查询:
SELECT[ID],[Name],Score
FROMTable1a
WHEREScoreIN
(SELECTMAX(b.Score)ASMAXScore
FROMTable1b
GROUPBYb.[Name])
可是,这ID号还是多出来了,原因是由于该搜索是以最大值的集合作依据,如77这个最大值,可能是B的最大值,但是A和C可能也会出现77这个数,但不是最大值,所以......
胜利,最后加了个条件,使最大值集合中的Name值,与搜索的Name值相符合
SELECT[ID],[Name],Score
FROMTable1a
WHEREScoreIN
(SELECTMAX(b.Score)ASMAXScore
FROMTable1b
GROUPBYb.[Name]HAVINGa.[Name]=b.[Name])
结果顺利出来结果
往往是不起眼的问题,很费脑
相关文章推荐
- 一个有趣的查找--搜索最大值所在的ID号 (轉自:http://blog.csdn.net/dhlhh)
- 一个有趣的查找--搜索最大值所在的ID号
- 搜索最大值所在的ID号 - 和 - 用C#和数据库实现无限级分类法
- 请编写一个函数,它在一个字符串中进行搜索,查找所有 在一个给定字符集合中出现的字符。
- 鞍点(一个数在所在行中是最大值,在所在列中是最小值)
- SQL语句之显示一张表所有的数据行,且在前面,显示指定的一个ID值所在的数据行
- [置顶] 在字符串中查找一个特定的字符第一次出现的位置,并返回字符所在位置;如果没有则返回NULL。
- 请使用迭代查找一个list中最小和最大值,并返回一个tuple
- 5-12: 从键盘输入一个字符串,查找其最大的元素,在该元素后插入字符串“(max)”
- 函数在一个字符串中进行搜索,查找所有在一个给定字符集合中出现的字符,函数原型:char *find_char( char const *source, char const *chars);
- 每当我想查找一个我的博文的时候就想放弃CSDN,没有自己的搜索功能啊
- 递归查找一个序列的最大最小值
- 查找程序所在上一级目录中是否存在指定文件夹,不存在就建立,并在其中新建一个txt文件
- 搜索一个class或者方法或者id写在哪个JS或CSS里面
- 一个简单的获取最大ID号码的方法
- 写一个根据id字段查找记录的缓存函数(javascript)
- 一个有趣的等式 (搜索用:优化 java 算法)
- 完成一个排序,求最大最小值,和查找数组元素的程序
- 写一个通用的搜索字符所在位置的工具
- 一个Eclipse 插件,方便查找某个class所在的jar包