Сегодня мой вопрос связан с обозначением непрерывных периодов времени, когда выполняются заданные критерии. Мои сырые данные, представляющие интерес, выглядят так.Идентифицировать непрерывные периоды времени
Salesman ID Pay Period ID Total Commissionable Sales (US dollars)
1 101 525
1 102 473
1 103 672
1 104 766
2 101 630
2 101 625
.....
Я хочу отметить непрерывные периоды времени, когда продавец достиг 500 долларов продаж или больше. Мой идеальный результат должен выглядеть так.
[Salesman ID] [Start time] [End time] [# Periods] [Average Sales]
1 101 101 1 525
1 103 107 5 621
2 101 103 3 635
3 104 106 3 538
Я знаю, как все остальное, но я не могу понять, что не очень дорогой способ определить даты начала и окончания. Помогите!
К сожалению, я считаю, что это сложная проблема в SQL. Вы можете сделать «итеративное» решение, используя рекурсивный CTE. Если проблема заключалась в том, чтобы разбить строки на группы * точно * 500, то вы могли бы сделать это с помощью функций окна. –
Да .. Большинство решений, о которых я могу думать, занимает много итераций. Может быть, просто скопируйте это в Excel и напишите итеративный макрос в мышцу через него. –
Вы заботитесь только о первых 500 долларов или приращениях в 500 долларов? Если первое, то есть решение. Проблема заключается в приращениях в 500 долларов. –