注册 登录
编程论坛 SQL Server论坛

求教SQL语句

wklhdt 发布于 2007-11-26 16:48, 1688 次点击
比如说有下面一个表
userid     picid     votenum
1              001     50
1              002     24
1              003     70
2              004     66
2              005     45
3              006     76
3              007      49
3              008     85
。。。。。。。。。。。。
如何取出第个userid  票数最多的那个作品
即:我想得到如下结果:
userid     picid     votenum
1              003     70
2              004     66
3              008     85
。。。。。。。。。。。
13 回复
#2
purana2007-11-26 16:52
select * from @t a where votenum=(select max(votenum) from @t where userid=a.userid) order by userid
#3
purana2007-11-26 16:53
select * from @t a where votenum=(select top 1 votenum from @t where userid=a.userid order by votenum desc) order by userid
#4
purana2007-11-26 16:54
select userid,max(votenum) votenum from @t group by userid
#5
wklhdt2007-11-26 16:58
版主好快  多谢啊
#6
XieLi2007-11-26 17:01
PURANA
你也太快了吧.!
呵呵!
#7
purana2007-11-26 17:03
呵呵..
这年头..讲的就是速度..
#8
wklhdt2007-11-26 17:04
原帖由 [bold][underline]purana[/underline][/bold] 于 2007-11-26 16:54 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1115669&ptid=188528][/url]
select userid,max(votenum) votenum from @t group by userid

假如有一个userid的好几个作品票数相同,我只想让显示一个(任何一个都可以)
怎么写?
#9
缘吇弹2007-11-26 17:05
在VB那,也经常看到这种事...
#10
purana2007-11-26 17:09
to 8楼的..可以这样子.
select * from @t a where votenum=(select top 1 votenum from @t where userid=a.userid order by newid()) order by userid
#11
wklhdt2007-11-26 17:29
楼上高手
以后多多向你学习
#12
orliubc2007-11-26 18:21
唯高手抢2楼是也!!!
#13
阿拉丁2007-11-27 00:00
回复 1# 的帖子
select  userid,picid,votnum from table where votnum in (select max(votnum) from table group by userid )
#14
dareonly2007-11-27 22:28
我也学习下
1