請幫助我生成以下查詢,我一直在努力一段時間。讓我們說我有一個簡單的表,一個月號和相關信息是否有在這個特殊的月份查找排名函數重複出現
任何失敗的事件下面的腳本來生成樣本數據:
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
)
給出一個「重複失敗的定義「:
當事件發生故障期間的任何6個月至少4個月,然後上個月此類故障是發生‘重複失敗’我的查詢應該返回下面的輸出
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 - 一次次的失敗沒有6(4次失敗在過去的6個月)。
- R2第2個月第7個月重複失敗(最近6個月有4個失敗)。
- R3月3號重複失敗11號(最近6個月4次失敗)。
R1 - 同樣1次的失敗沒有因爲18多次失敗應該再次從一開始當新的反覆失敗發生在過去的6週報告期
首次編號屢禁不止連續因爲numerated基於其數,我必須採取適當的乘數:
- 1 repated失敗 - X2
- 第二次的失敗 - X4
- 第三次和更多的重複故障-X5。
什麼版本的SQL Server? 2012年與2005-2008年相比具有更多的排名功能。 –
嗨,我們正在使用SQL Server 2008 –
我編輯了你的數據(我認爲)修復它 - 如果我犯了一個錯誤,請進一步編輯 – AakashM