sql >> データベース >  >> RDS >> Sqlserver

Sql Server 2012 の再帰的減衰平均

    考えられる代替手段の 1 つは、

    WITH T AS
    (
    SELECT      
     Value * POWER(5E-1, ROW_NUMBER() 
                         OVER (ORDER BY Row DESC)
                   /* first row decays less so special cased */
                  -IIF(LEAD(Value) OVER (ORDER BY Row DESC) IS NULL,1,0))
           as x
    FROM Sample
    )
    SELECT SUM(x)
    FROM T
    

    SQL フィドル

    または、60%/40% を使用して更新された質問

    WITH T AS
    (
    SELECT   IIF(LEAD(Value) OVER (ORDER BY Row DESC) IS NULL,  1,0.6)
             * Value 
             * POWER(4E-1, ROW_NUMBER() OVER (ORDER BY Row DESC) -1)
           as x
    FROM Sample
    )
    SELECT SUM(x)
    FROM T
    

    SQL フィドル

    上記の両方がデータを介して単一のパスを実行し、潜在的に Row INCLUDE(Value) でインデックスを使用できます ソートを避けるため。




    1. Oracle変数

    2. PHPでmysql_queryを実行すると、アクセス拒否エラーが発生します

    3. MySQLWorkbenchへのCSVファイルのロード

    4. SQL Serverでselectクエリを使用してテーブルを作成するにはどうすればよいですか?