当前位置:  开发笔记 > 数据库 > 正文

带分组的SQL子查询问题,平均值

如何解决《带分组的SQL子查询问题,平均值》经验,为你挑选了1个好方法。

在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).

我一直在盯着这一个小时(在一个更大的问题中,我已经解决了),我认为我的大脑已经冻结了.帮助一个简单的问题?



1> albertein..:

这应该成功

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

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有