這是查詢:(通常該查詢檢測表中的雙重記錄了,但可能滿足您的需求)。
select value, result, count(value) as [Result Sum]
from @temp
where result = 1
group by value, result
having count(value) >3
這是結果
value result Result Sum
----- ----------- -----------
A 1 4
更新:
這是在我的臨時表中的數據的例子(@temp)
value result
----- -----------
A 1
A 1
A 1
A 0
A 1
D 1
D 1
D 1
D 1
B 1
B 1
C 1
C 1
C 1
C 1
從例如數據C和D是有效值
Declare @temp2 table
(
value nvarchar(5)
)
declare @value nvarchar(5), @result int, @total int, @flag bit, @tempValue nvarchar(5)
DECLARE myCursor CURSOR FOR
SELECT value, result
FROM @temp
set @flag = 1
set @tempValue = ''
OPEN myCursor;
FETCH NEXT FROM myCursor into @value, @result;
WHILE @@FETCH_STATUS = 0
BEGIN
--logic here
if (@tempValue <> @value and @result = 1) or @flag = 1
begin
set @tempValue = @value
set @total = 1
set @flag = 0
end
else [email protected] = @value
begin
if @result = 1
set @total = @total + 1
else [email protected] = 0
set @flag = 1
if @total >3 --valid value has reached 4 consecutive result =1
begin
set @flag = 1
insert into @temp2 values (@value)
end
end
FETCH NEXT FROM myCursor into @value, @result;
END;
CLOSE myCursor;
DEALLOCATE myCursor;
select * from @temp2
這是循環(表@ TEMP2)的結果
value
-----
D
C
(2 row(s) affected)
「連續」 的命令是什麼?表格中沒有行的默認排序。 –
連續按'日期'排序 –