Рішення SQL, яке поєднує в собі "ПРАВИЛЬНІ МЕЖДУ НЕ ОБ'ЄДНАНИМ ПЕРЕДБАЧЕННЯМ І ТОЧНИМ РЯДОМ" та "СУМ" зробили саме те, чого я хотів досягти. Дуже дякую!
Якщо це може допомогти комусь, ось моя справа. Я хотів зібрати +1 у стовпці, коли виробник знайдеться як "Деякий виробник" (приклад). Якщо ні, не збільшуйте, але показуйте попередній результат приросту.
Отже, цей фрагмент SQL:
SUM( CASE [rmaker] WHEN 'Some Maker' THEN 1 ELSE 0 END)
OVER
(PARTITION BY UserID ORDER BY UserID,[rrank] ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS Cumul_CNT
Дозволено мені отримати щось подібне:
User 1 Rank1 MakerA 0
User 1 Rank2 MakerB 0
User 1 Rank3 Some Maker 1
User 1 Rank4 Some Maker 2
User 1 Rank5 MakerC 2
User 1 Rank6 Some Maker 3
User 2 Rank1 MakerA 0
User 2 Rank2 SomeMaker 1
Пояснення вище: Починається кількість "деякого виробника" з 0, деякий виробник знайдений, і ми робимо +1. Для Користувача 1 знайдено MakerC, тому ми не робимо +1, але замість цього вертикальний підрахунок Some Maker дотримується 2 до наступного рядка. Розмежування здійснюється користувачем, тому коли ми змінюємо користувача, сукупний підрахунок повертається до нуля.
Я на роботі, я не хочу ніякої заслуги щодо цієї відповіді, просто скажу дякую та покажу свій приклад, якщо хтось опинився в тій же ситуації. Я намагався поєднати СУМ і ЧАСТИНЮ, але дивовижний синтаксис "РАДИ МЕЖУ НЕ ОБ'ЄДНАНОГО ПРОГРАММУВАННЯ ТА ТОЧНОГО РЯДУ" виконав завдання.
Дякую! Грукер