Пожалуйста, помогите мне сгенерировать следующий запрос, с которым я уже некоторое время борется. Давайте сказать, что у меня есть простая таблица номер месяца и информации, были ли какие-либо неудачные события в этом конкретном месяцеПоиск повторных вхождений с функциями ранжирования
Ниже скрипт для генерации данных выборки:
WITH DATA(Month, Success) AS
(
SELECT 1, 0 UNION ALL
SELECT 2, 0 UNION ALL
SELECT 3, 0 UNION ALL
SELECT 4, 1 UNION ALL
SELECT 5, 1 UNION ALL
SELECT 6, 0 UNION ALL
SELECT 7, 0 UNION ALL
SELECT 8, 1 UNION ALL
SELECT 9, 0 UNION ALL
SELECT 10, 1 UNION ALL
SELECT 11, 0 UNION ALL
SELECT 12, 1 UNION ALL
SELECT 13, 0 UNION ALL
SELECT 14, 1 UNION ALL
SELECT 15, 0 UNION ALL
SELECT 16, 1 UNION ALL
SELECT 17, 0 UNION ALL
SELECT 18, 0
)
Учитывая определение «неоднократного отказа «:
Когда неудача события происходит в течение не менее 4 месяцев в любых 6 месяцев, то в прошлом месяце с таким несоответствием является„повторным нарушением“мой запрос должен возвращать следующий вывод
Month Success RepeatedFailure
1 0
2 0
3 0
4 1
5 1
6 0 R1
7 0 R2
8 1
9 0
10 1
11 0 R3
12 1
13 0
14 1
15 0
16 1
17 0
18 0 R1
где:
- R1 -1st повторил сбой в месяц нет 6 (4 неудачи в последние 6 месяцев).
- R2 -2-я повторная неудача в месяце № 7 (4 сбоя за последние 6 месяцев).
- R3 -3-й повторный отказ в месяце № 11 (4 отказа за последние 6 месяцев). не
R1 -Снова первый повторил сбой в месяц не 18, потому что Повторные Неудачи должны быть снова пронумерованы с самого начала, когда новый неоднократный отказ происходит в первый раз за последние 6 отчетных периодов
Повторные Неудачи нумеруются последовательно, потому что основанный на его номер я должен применять соответствующий множитель:
- первый repated провал - X2
- второй повторил отказ - Х4
- Третий и более повторный отказ -X5.
Какая версия SQL Server? 2012 год имеет дополнительные рейтинговые функции по сравнению с 2005-2008 годами. –
Привет, мы используем SQL Server 2008 –
Я отредактировал ваши данные, чтобы (я думаю) исправить их - пожалуйста, отредактируйте дальше, если я допустил ошибку – AakashM