在 MS Transact SQL 中,假设我有一个这样的表(订单):
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
关于分组、平均的SQL子查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/153585/