2015-04-02 2 views
-4

Можете ли вы сказать мне, в течение последних 12 месяцев, как многие клиенты помещают# клиенты размещены # заказы запрос

  • 1 заказ
  • 2 заказов
  • 3 заказы
  • 4 заказов
  • 5 или больше заказов

1 заказ 800 000 клиентов 800 000 заказов 2 заказов 100,000 клиентов 200000 заказов 3 заказов 30000 клиентов 90000 заказов Etc.

+0

Как мне сделать этот запрос? – Chris

+1

выбрать \t кол-во (отличное o.OrigOrderid) как Orderscount, count (отчетливый o.BilltoPersonId) как UniqueCustomers от indo.dbo.Orders o где o.SourceId = 80 и o.isCancelled = 0 и o.isTransacted = 1 и o.DateOrdered> = '4/1/14' Группа от o.BilltoPersonId – Chris

+0

это дает мне это ... – Chris

ответ

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 
Смежные вопросы