2015-04-02 44 views
-4

你能告诉我在过去12个月中有多少客户放在#客户放在#订单查询

  • 1为了
  • 2订单
  • 3订单
  • 4订单
  • 5更多订单

1个订单800,000个客户800,000个订单 个2订单10万级的用户20万的订单 3个数量30,000个客户订单90000等等

+0

我该如何做这个查询? – Chris 2015-04-02 18:33:39

+1

select \t count(distinct o.OrigOrderid)as Orderscount,count(distinct o.BilltoPersonId)as UniqueCustomers from indo.dbo.Orders o where o.SourceId = 80 and o.isCancelled = 0 and o.isTransacted = 1 and o.DateOrdered> ='4/1/14' Group By o.BilltoPersonId – Chris 2015-04-02 18:44:53

+0

它给了我这个... – Chris 2015-04-02 18:45:20

回答

0

这会做你想要它除了在5不会和什么 - 它会shpw您击穿尽可能多的有(因此,如果一个客户做50个订单将有一排为:

with d1 as 
(select COUNT(*) as [Number of Orders], row_number() 
    over (order by custid) as [How Many Orders] 
from t2 group by custid) 
    select * from d1 
0

根据您的评论,这里是你所需要的。 我删除了“SourceId = 80”,因为我不知道这种情况的目的。

SELECT NbOrdersPerCustomer.NBOrders, 
     COUNT(NbOrdersPerCustomer.CustomerId) 
FROM ( SELECT CustomerId = o.BilltoPersonId, 
       NBOrders = COUNT(o.OrigOrderid) 
     FROM indo.dbo.Orders o 
     WHERE o.isCancelled = 0 
     AND o.isTransacted = 1 
     AND o.DateOrdered >= '4/1/14' 
     GROUP BY o.BilltoPersonId) AS NbOrdersPerCustomer 
GROUP BY NbOrdersPerCustomer.NBOrders