Dynamic row range when calculating moving sum/average using window functions (SQL Server)

后端 未结 3 2036
礼貌的吻别
礼貌的吻别 2021-01-18 21:10

I\'m currently working on a sample script which allows me to calculate the sum of the previous two rows and the current row. However, I would like to make the number \'2\' a

3条回答
  •  不要未来只要你来
    2021-01-18 21:42

    DECLARE @test VARCHAR = 1
    DECLARE @sqlCommand VARCHAR(1000)
    DECLARE @myTable TABLE  (myValue INT)
    
    INSERT INTO @myTable ( myValue ) VALUES  ( 5)
    INSERT INTO @myTable ( myValue ) VALUES  ( 6)
    INSERT INTO @myTable ( myValue ) VALUES  ( 7)
    INSERT INTO @myTable ( myValue ) VALUES  ( 8)
    INSERT INTO @myTable ( myValue ) VALUES  ( 9)
    INSERT INTO @myTable ( myValue ) VALUES  ( 10)
    
    SET @sqlCommand = 'SELECT SUM(myValue) OVER (ORDER BY myValue ROWS BETWEEN ' + @test + ' PRECEDING AND CURRENT ROW)
                      FROM #temp'
    
    EXEC (@sqlCommand)
    

提交回复
热议问题