Я работаю над проблемой, когда сотрудники получают определенный балл каждую неделю.Они будут иметь только 1 балл каждую неделю, сохраняясь каждую субботу.Я хочу посчитать количество последовательных недель (работающих в обратном направлении с сегодняшнего дня), когда они превышают 50. Если предыдущая неделя не превышала 50, то у них было бы 0 последовательных недель.Если бы они набрали более 50 баллов каждую неделю в течение прошлого года, то у них было бы 52 недели подряд.
Я пытался использовать функцию Row_Number (), чтобы получить это, но не могу понять, как включить оценку как фактор в это.
Это пример данныхset:
EmpID Last Week Score
A 7/6/2019 60
A 6/29/2019 84
A 6/22/2019 21
B 7/6/2019 41
B 6/29/2019 92
C 7/6/2019 77
C 6/29/2019 55
C 6/22/2019 71
C 6/15/2019 63
Это то, что я пробовал до сих пор
SELECT
EmpID,
EOW,
SCORE,
ROW_NUMBER() OVER(PARTITION BY EMP ORDER BY EOW DESC) AS RN
FROM a
ORDER BY EmpID, EOW DESC
Но это дает мне только количество строк для каждого сотрудника.Мне нужно, чтобы счет прекратился, когда их оценка ниже 50, как показано ниже:
EmpID Last Week Score RN
A 7/6/2019 60 1
A 6/29/2019 84 2
A 6/22/2019 21 -
B 7/6/2019 41 -
B 6/29/2019 92 -
C 7/6/2019 77 1
C 6/29/2019 55 2
C 6/22/2019 71 3
C 6/15/2019 63 4
Затем мне нужно получить одно число последовательных недель для каждого сотрудника, чтобы я мог объединить результаты с более крупным запросом.это тянет дополнительную информацию о сотруднике.Результаты находятся в другой таблице, поэтому я должен присоединиться к ней.Запрос должен выдать результат, подобный следующему:
EmpID Last Week Consecutive Week
A 7/6/2019 2
B 7/6/2019 0
C 7/6/2019 4
Имеет ли это смысл?Любая помощь будет оценена