求一SQL语句(如何按某列的值分组且取出每组前几行的数据)

yfmine 2005-09-24 02:29:31
有如下表:
id price collectDate
1 20.3 20050608
1 20.8 20050609
1 21.7 20050610
2 33.1 20050608
2 32.8 20050622
2 33.7 20050713
3 120.4 20050706


请问:如何取得id相同的值的列的前两行数据?
...全文
285 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yfmine 2005-09-30
  • 打赏
  • 举报
回复
我怎么给不了分,刚才给分后出现什么objtext错误什么的哦,没看清楚.现在进入"管理"没有那个给分的录入框了,在给分那里用普通字符显示给分的分数.但是这里却没有?
yfmine 2005-09-30
  • 打赏
  • 举报
回复
谢谢各位,暂时用其他方法替代了.
yfmine 2005-09-25
  • 打赏
  • 举报
回复
谢谢你的回答,比如:id=1的取出两行,id=2也只取两行.我想过用子查询然后TOP,但是ASE里好像不支持子查询的TOP.(在SQL SERVER2000中我试过了,能用的)
SELECT a.id,a.price,a.collectDate
FROM tab_a a
WHERE a.collectDate in
(SELECT TOP 2 b.collectDate FROM tab_a b
WHERE b.id=a.id ORDER BY b.collectDate)
后来我又用了max函数,在子查询中取出日期最大和第二大的,但是如果有相同的日期就会出现查了多于两条的情况.
郁闷......
taotao726 2005-09-25
  • 打赏
  • 举报
回复
升级sybase到15支持top语法。
yfmine 2005-09-24
  • 打赏
  • 举报
回复
id不是主键.
tyttytzhz 2005-09-24
  • 打赏
  • 举报
回复
怎么弄的呀,试了下不知道怎么办!!??

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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