怎样用SQL选出分组后每组的前两条记录?

sangwich 2004-08-19 05:01:51
怎样写在一个表中选出每组记录的前两条的SQL语句?请高人指点!
...全文
626 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sangwich 2004-08-20
  • 打赏
  • 举报
回复
谢了!小弟不胜感激!
JohnShen 2004-08-19
  • 打赏
  • 举报
回复
cheny1234(咩) 的写法转换成你的需求是:

Select 字段1,...,字段n
From (Select *,(Select Count(*)
From 订单表 as a
Where a.客户ID = 订单表.客户ID
And a.订单日期>=订单表.订单日期) as 序号
From 订单表 ) as b
Where 序号<=2
其中count(*)是用于通过找出相同客户ID但晚于当前订单日期的订单数来确定当前订单的序号。
sangwich 2004-08-19
  • 打赏
  • 举报
回复
比如:一个定单表,我想查寻出每一个客户的最新两条记录。用SQL怎么写?这位大侠的我看不懂。
cheny1234 2004-08-19
  • 打赏
  • 举报
回复
未经测试:
表:T
字段:id 自动递增,
field1 数字,
.....
select * from (
select *,(select count(*) from T as t2 where t2.field1=t1.field1 and t2.id<=t1.id) as aaa from T as t1) as t3
where aaa<=2

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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