Proszę, pomóżcie mi wygenerować następujące zapytanie, z którym borykam się od jakiegoś czasu. Pozwala powiedzieć Mam proste tabeli z liczbą miesięcy oraz informacje, czy były jakieś nieudane wydarzenia w tym konkretnym miesiącuZnajdowanie powtarzających się wystąpień z funkcjami rankingowymi
Poniżej skrypt do generowania danych próbki:
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
)
Biorąc pod uwagę definicję „wielokrotnym awarii „:
Gdy nastąpi awaria zdarzenie podczas co najmniej 4 miesięcy w okresie 6 miesięcy potem ostatniego miesiąca z takiej awarii jest«uporczywe zaniechanie»moje zapytanie powinno zwrócić następujący wynik
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
gdzie:
- R1 -1st powtarzającej w miesiącu nr 6 (4 niepowodzenia w ciągu ostatnich 6 miesięcy).
- R2 - powtórzono niepowodzenie w miesiącu nr 7 (4 niepowodzenia w ciągu ostatnich 6 miesięcy).
- Powtarzająca się seria R3 -3 w miesiącu 11 (4 niepowodzenia w ciągu ostatnich 6 miesięcy).
R1 -again 1-cia powtarzane niepowodzenie w miesiącu, ponieważ nie 18 Powtarzające się awarie powinny być numerowane ponownie od początku, gdy wystąpi nowa uporczywe zaniechanie po raz pierwszy w ciągu ostatnich 6 okresów sprawozdawczych
Powtarzające się awarie są numerowane kolejno, ponieważ na podstawie jego numeru muszę zastosować odpowiedniego mnożnika:
- 1-te powtarzającym niepowodzenie - X2
- 2-cia uporczywe zaniechanie - X4
- Trzecie i bardziej powtarzające się niepowodzenie - X5.
Jaką wersję programu SQL Server? Rok 2012 ma dodatkowe funkcje rankingowe w porównaniu do lat 2005-2008. –
Cześć, używamy SQL Server 2008 –
Zmodyfikowałem twoje dane, aby (jak sądzę) je naprawić. Dokonaj dalszej edycji, jeśli popełniłem błąd. – AakashM