斜率我有一些數據在一個SQL數據庫,我想計算斜率。該數據具有這樣的佈局:如何計算在SQL
Date | Keyword | Score
2012-01-10 | ipad | 0.12
2012-01-11 | ipad | 0.17
2012-01-12 | ipad | 0.24
2012-01-10 | taco | 0.19
2012-01-11 | taco | 0.34
2012-01-12 | taco | 0.45
想我最終輸出看起來像這樣通過使用SQL創建新表:
Date | Keyword | Score | Slope
2012-01-10 | ipad | 0.12 | 0.06
2012-01-11 | ipad | 0.17 | 0.06
2012-01-12 | ipad | 0.24 | 0.06
2012-01-10 | taco | 0.19 | 0.13
2012-01-11 | taco | 0.34 | 0.13
2012-01-12 | taco | 0.45 | 0.13
更爲複雜的是,不是所有的關鍵詞有3個日期的價值的數據,有些只有2例如。
越簡單SQL的更好,因爲我的數據庫是專有的,我不太清楚什麼公式是可用的,雖然我知道它可以做OVER(PARTITION BY)是否有幫助。謝謝!
更新:我定義斜率的最佳擬合表達式y = mx + P在Excel又名這將是=斜率()
下面是另一個實際的例子,我通常在Excel操縱:
date keyword score slope
1/22/2012 water bottle 0.010885442 0.000334784
1/23/2012 water bottle 0.011203949 0.000334784
1/24/2012 water bottle 0.008460835 0.000334784
1/25/2012 water bottle 0.010363991 0.000334784
1/26/2012 water bottle 0.011800716 0.000334784
1/27/2012 water bottle 0.012948411 0.000334784
1/28/2012 water bottle 0.012732459 0.000334784
1/29/2012 water bottle 0.011682568 0.000334784
看看在SQL線性迴歸這個問題。 http://stackoverflow.com/questions/2536895/are-there-any-linear-regression-function-in-sql-server – 2012-01-31 18:19:45
@datayoda - 你是如何定義的斜率?如果您有兩個以上的數據點,您是否剛剛從最早的點到最近的點取斜率?或者你是否試圖在所有點之間畫一條最合適的線?如果是這樣,使用線性最小二乘法或其他算法?你是否想強制這條線擊中其中一個點(知道這會降低整體合體的好處)? – 2012-01-31 18:21:09
Oracle中有一些線性迴歸函數。 http://docs.oracle.com/cd/B10501_01/server。920/a96540/functions101a.htm#85925 – 2012-01-31 18:24:41