加载中…
个人资料
庖丁的小刀
庖丁的小刀
  • 博客等级:
  • 博客积分:0
  • 博客访问:2,180
  • 关注人气:297
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

sku种类数在订单分布

(2012-07-02 11:48:37)
标签:

杂谈

分类: 4.数据库BI

----
背景:统计某段时间内订单总数,付款订单数,未付款订单数,根据每个订单中的 sku的种类数。
----思路:
       --1.先给每个订单,按照订单中 sku个数,打付款标签,设置两个字段(方便求和), paidOrderTotal,unpaidOrderTotal
       --2.根据时间和订单中sku个数,分组汇总。
---测试环境:sql server 2008 r2.
---测试结果:运行速度较慢。
----后续可以结合每单访问的详情页面数据做访问质量的监控

select aa .skuNum                                                   --订单中的sku 种类数
       ,DATENAME (DAY, aa.CreatedOn )as w                       --按周统计
       ,COUNT( aa.orderid )as orderTotal                              --统计总的订单数
       ,SUM( aa.paidOrderTotal )as paidOrderTotal        --付款订单
       ,SUM( aa.unpaidOrderTotal )as unpaidOrderTotal    -- 未付款订单
       from (
             select ords .OrderID
                   ,ords. CreatedOn
                   ,case when COUNT (od. sku)> 0 and COUNT (od. sku) < 11 then '1~10'
                               when COUNT (od. sku)> 10 and COUNT (od. sku) < 21 then '10~20'
                               when COUNT (od. sku)> 20 and COUNT (od. sku) < 31 then '20~30'
                               when COUNT (od. sku)> 30 and COUNT (od. sku) < 41 then '30~40'
                               when COUNT (od. sku)> 40 and COUNT (od. sku) < 51 then '40~50'
                               when COUNT (od. sku)> 50  then '50~'
                   end as skuNum                                          --订单中的sku 种类数
                   ,count( distinct case when ords.OrderStatusID not in(2) then ords .OrderID   end)
                         as paidOrderTotal
                   ,count( distinct case when ords.OrderStatusID in(2 ) then ords .OrderID   end)
                         as unpaidOrderTotal
                        
                   from Focalprice_db .dbo. orders ords(nolock ),Focalprice_db. dbo.OrderDetails od( nolock)
                   where  ords .OrderID = od .OrderID
                         and CONVERT (nvarchar ,ords .CreatedOn ,112)> '20120501'
                   group by ords. OrderID,ords .CreatedOn
                  
             ) aa
       group by aa. skuNum , DATENAME ( DAY,aa .CreatedOn)
     

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有