Существует таблица с именем Orders, имеющая три столбца:
Мне нужно знать, что за прошедшие X месяцев пользователи A разместили 1 заказ, пользователи B разместили 2 заказа, пользователи C разместили 3 заказа и т. Д.
Таким образом, выводом является таблица с полем MinDate, а затем столбцы для каждого количества заказов от 1 до N, например ::
declare @t table (
MinDate datetime,
o_1 int,
o_2 int,
o_3 int,
o_4 int,
...
o_N int
)
Каждое поле содержит количество уникальных клиентов (UserID's), которые разместили столько заказов между MinDate и текущей датой. Например, если в строке MinDate = '2009-09-01', то o_6 содержит количество клиентов, которые разместили 6 заказов в период с 1 сентября по настоящее время и т. Д.
Я пробовал несколько подходов, левые заказы на присоединение к таблице чисел и т. Д., Но у меня возникают проблемы с получением правильного числа уникальных пользователей в каждом столбце. Я мог бы сделать это легко (и медленно) с помощью курсора, но это похоже на обман.
Есть предложения? Дайте мне знать, если мое объяснение не имеет смысла ...