问题描述
我的要从一个数据库A中查找出没类的最大记录行,如NAMENUMTIMELILI62008LILI52009LILI62010HUHU72008HUHU82009HUHU42010我要把每个人的最大行记录取出来LILI62008HUHU82009这个怎么做呢如果我还需要查询出NUM大于4的记录呢NAMENUMCOUNTLILI63HUHU82请哪位高手指导下
解决方案
解决方案二:
1、selecttop1*fromtableorderbyNUMdesc2、select*fromtablewhereNUM>4
解决方案三:
第一个错了*************
解决方案四:
关注第一个!似乎要用max()groupby之类的,忘了
解决方案五:
tryselect*fromtableasawherenotexists(select*fromtablewherea.NAME=NAMEandNUM>a.NUM)
解决方案六:
有可能一样的,再加上一个top1
解决方案七:
declare@tabletable([NAME]varchar(10),[NUM]int,[TIME]int)insertinto@tableselect'LILI',6,2008insertinto@tableselect'LILI',5,2009insertinto@tableselect'LILI',6,2010insertinto@tableselect'HUHU',7,2008insertinto@tableselect'HUHU',8,2009insertinto@tableselect'HUHU',4,2010select[NAME],max([NUM])as[NUM],max([TIME])as[TIME]from@tablegroupby[NAME]select[NAME],max([NUM])as[NUM],'COUNT'=count([NUM])from@tablewhere[NUM]>4groupby[NAME]----------------NAMENUMTIMEHUHU82010LILI62010----------------NAMENUMCOUNTHUHU82LILI63
解决方案八:
查询语句最好少用top1这样的查询。数据量一大你的查询将会十分的慢
解决方案九:
1.selectmax(*)fromTablegroupbyName2.selectmax(*)fromTablewhereNUM>4froupbyName试一下没测试
解决方案十:
1.selectmax(*)ascountfromTablegroupbyName2.selectmax(*)ascountfromTablewhereNUM>4groupbyName试一下没测试
解决方案十一:
大家好象没完全理解我的意思,我是要把最大行的所有内容给取出来啊
解决方案十二:
为什么我用select*fromtableasawherenotexists(select*fromtablewherea.NAME=NAMEandNUM>a.NUM)一个返回的是最大行记录,一个返回的是最小行记录呢?
解决方案十三:
6L已经给出你想要的答案了,要不就是你没有描述清楚
解决方案十四:
引用12楼milo4210的回复:
6L已经给出你想要的答案了,要不就是你没有描述清楚
解决方案十五:
楼主你还不揭帖啊?
解决方案:
引用6楼xiaoniao_28的回复:
SQLcodedeclare@tabletable([NAME]varchar(10),[NUM]int,[TIME]int)insertinto@tableselect'LILI',6,2008insertinto@tableselect'LILI',5,2009insertinto@tableselect'LILI',6,2010insertinto@tableselect'HUHU',7,2008insertinto@tableselect'HUHU',8,2009insertinto@tableselect'HUHU',4,2010select[NAME],max([NUM])as[NUM],max([TIME])as[TIME]from@table…
哈,还真不错的人