深爱那片海 发表于 2015-1-16 22:25:10

MSSQL网页设计一个风趣的查找--搜刮最年夜值地点的ID号...

Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失最年夜值伴侣出了个题,各有A,B,C三人做游戏,纪录第次得分,经几十次游戏后,成就以下:

IDNameScore
1a88
2b76
3c66

4c90
5b77
6a56

7b77
8c67
9a44

......

固然另有良多

请求搜刮A,B,C三人各最好成就,而且要列出最好成就的序号即ID号
如:
IDNameScore
1a88
5b77
4c90

最后我以为好象是低级的题,把目光放在最年夜值上,但随后就以为这重点不在最年夜值上,而是最年夜值地点的ID号。
标题难点:搜刮出最年夜值地点的ID号
破例情形:每一个人都大概呈现几个最年夜的值

动脑:入手下手先想到这MAX函数:
SELECTMAX(Score),GROUPBY
但这活该的ID号怎样也拔出不了

一线但愿:用了个子查询:
SELECT,,Score
FROMTable1a
WHEREScoreIN
(SELECTMAX(b.Score)ASMAXScore
FROMTable1b
GROUPBYb.)
但是,这ID号仍是多出来了,缘故原由是因为该搜刮是以最年夜值的汇合作根据,如77这个最年夜值,多是B的最年夜值,可是A和C大概也会呈现77这个数,但不是最年夜值,以是......

成功,最初加了个前提,使最年夜值汇合中的Name值,与搜刮的Name值符合合
SELECT,,Score
FROMTable1a
WHEREScoreIN
(SELECTMAX(b.Score)ASMAXScore
FROMTable1b
GROUPBYb.HAVINGa.=b.)

了局顺遂出来了局
常常是不起眼的成绩,很费脑
Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失

灵魂腐蚀 发表于 2015-1-19 11:07:55

如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。

再现理想 发表于 2015-2-3 12:07:14

代替了原来VB式的错误判断。比Oracle高级不少。

透明 发表于 2015-2-8 20:56:14

大侠们有推荐的书籍和学习方法写下吧。

兰色精灵 发表于 2015-2-26 11:00:56

个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。

柔情似水 发表于 2015-3-8 13:56:52

作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!

金色的骷髅 发表于 2015-3-16 02:28:08

原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。

深爱那片海 发表于 2015-3-22 19:09:33

从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。
页: [1]
查看完整版本: MSSQL网页设计一个风趣的查找--搜刮最年夜值地点的ID号...