|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2008-11-24 : 10:18:03
|
[code]DECLARE @Sample TABLE ( rowID INT IDENTITY(1, 1), col0 INT, col1 INT, col2 INT, col3 INT, col4 INT, col5 INT, col6 INT, col7 INT, col8 INT, col9 INT )INSERT @SampleSELECT 100, 0, 100, 0, 0, 0, 0, 100, 100, 0 UNION ALLSELECT 100, 0, 100, 100, 100, 0, 0, 0, 0, 0DECLARE @Stage TABLE ( rowID INT, seqID INT, grp INT, PRIMARY KEY CLUSTERED ( rowID, seqID ) )INSERT @Stage (rowID, seqID)SELECT rowID, seqIDFROM ( SELECT u.rowID, ROW_NUMBER() OVER (PARTITION BY u.rowID ORDER BY u.theCol) AS seqID, u.theValue FROM @Sample AS s UNPIVOT ( theValue FOR theCol IN (s.col0, s.col1, s.col2, s.col3, s.col4, s.col5, s.col6, s.col7, s.col8, s.col9) ) AS u ) AS dWHERE theValue = 0DECLARE @rowID INT, @seqID INT, @grp INTSELECT TOP 1 @rowID = rowID, @seqID = seqID, @grp = 1FROM @StageORDER BY rowID, seqIDUPDATE @StageSET @grp = grp = CASE WHEN @rowID = rowID AND @seqID = seqID - 1 THEN @grp + 1 ELSE 1 END, @rowID = rowID, @seqID = seqIDSELECT AVG(theCons)FROM ( SELECT 1.0E * MAX(grp) AS theCons FROM @Stage GROUP BY rowID ) AS d[/code] E 12°55'05.63"N 56°04'39.26" |
 |
|