日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了SQL Server 2012中的遞歸衰減平均值的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我需要計算衰減平均值(累積移動?)一組值的集合。序列中的最后一個值為50%權(quán)重,將所有先前序列的衰減平均值遞歸為另一個50%權(quán)重。

我提出了一個CTE查詢,它可以產(chǎn)生正確的結(jié)果,但它依賴于一個連續(xù)的行號。我想知道在SQL 2012中有沒有更好的方法來做到這一點,也許是使用over()的新窗口函數(shù),或者類似的東西?

在實時數(shù)據(jù)中,行按時間排序。我可以使用一個SQL視圖和row_number()來為我的CTE方法生成必要的行字段,但是如果有更有效的方法來實現(xiàn)這一點,我希望盡可能地保持高效。

我有一個包含兩列的示例表:行int和值Float。我有6個樣例數(shù)據(jù)值1、2、3、4、4。正確的結(jié)果應(yīng)該是3.78125。

我的解決方案是:

;WITH items AS (
  SELECT TOP 1 
    Row, Value, Value AS Decayed
    FROM Sample Order By Row
  UNION ALL
  SELECT v.Row, v.Value, Decayed * .5 + v.Value *.5 AS Decayed
  FROM Sample v
  INNER JOIN items itms ON itms.Row = v.Row-1
  )
SELECT top 1 Decayed FROM items order by Row desc

這將正確地生成測試數(shù)據(jù)的3.78125。我的問題是:在SQL 2012中有沒有更高效和/或更簡單的方法來實現(xiàn)這一點,或者這是唯一的方法?謝謝。

推薦答案

一種可能的替代方案是

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 Fiddle

或使用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 Fiddle

上述兩種方法都對數(shù)據(jù)執(zhí)行一次遍歷,并且可能使用Row INCLUDE(Value)上的索引來避免排序。

這篇關(guān)于SQL Server 2012中的遞歸衰減平均值的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標(biāo)簽:common-table-expression errorRecursiveDecayingAverageinSqlServer2012 exce
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達(dá)人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定