关于group by返回的记录的问题?

print 2003-08-30 05:17:43
select userid from table group by userid
上面这句是按userid字段分组并返回有多少个组,可我想查询返回多少个组中每个组中随便一条记录,
table

id userid value
1 2 567
2 3 456
3 2 457
4 1 343
5 3 423
6 3 223

比如上面这个表,我想查询userid为1中的随便一条记录,userid中为2的随便一条记录 ,userid为3的随便一条记录,
返回的应该是这样排序
id userid value
4 1 343
1 2 567
2 3 456

怎么写这语句呢? 我想一条SQL语句就能实现。
...全文
57 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
balloy 2003-09-12
  • 打赏
  • 举报
回复
随便一条记录?
这个要求也够奇特的。不过,如果真的实现这个功能,又有什么用呢?

sql中,涉及到聚合函数( count、min、max等 )查询后,就只能查询group by中出现的字段,
否则,也没有具体含义
hubinasm 2003-09-12
  • 打赏
  • 举报
回复
select min(id) as id,userid,max(valu) as valu from d group by userid
print 2003-09-11
  • 打赏
  • 举报
回复
user_id不是固定的,,

select top 2 userid from table group by userid

这个也只能获得userid字段的值吧?我要全获得怎么写?
possible_Y 2003-08-30
  • 打赏
  • 举报
回复
select top 3 from [table] where userid=1 or userid=2 or userid=3 'userid为数字型,否则加要''
zhxhjj 2003-08-30
  • 打赏
  • 举报
回复
select top 2 userid from table group by userid

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧