在MS Transact SQL中,假设我有一个像这样的表(Orders):
Order Date Order Total Customer # 09/30/2008 8.00 1 09/15/2008 6.00 1 09/01/2008 9.50 1 09/01/2008 1.45 2 09/16/2008 4.50 2 09/17/2008 8.75 3 09/18/2008 2.50 3
我需要的是:对于每个客户,最近两个订单的平均订单金额.因此对于客户#1,我应该得到7.00(而不是7.83).
我一直在盯着这一个小时(在一个更大的问题中,我已经解决了),我认为我的大脑已经冻结了.帮助一个简单的问题?
这应该成功
select avg(total), customer from orders o1 where orderdate in ( select top 2 date from orders o2 where o2.customer = o1.customer order by date desc ) group by customer