1
我有一個數據庫,包含101個模擬,可以說有5個不同的資產類別返回。SQL。資產類別的計算相關性
我需要編寫一個查詢來計算5個類別之間的各自相關性。表格將如下所示:
AssetClass_ID |模擬| AssetClass_Value
任何想法?我正在努力爭取接近。
(根據難易我可能最終不得不告訴最終用戶只要下載所有的模擬,並使用內置Excel函數做統計,但我不可能成爲流行這樣做)
我有一個數據庫,包含101個模擬,可以說有5個不同的資產類別返回。SQL。資產類別的計算相關性
我需要編寫一個查詢來計算5個類別之間的各自相關性。表格將如下所示:
AssetClass_ID |模擬| AssetClass_Value
任何想法?我正在努力爭取接近。
(根據難易我可能最終不得不告訴最終用戶只要下載所有的模擬,並使用內置Excel函數做統計,但我不可能成爲流行這樣做)
好,與一些谷歌和一些工作,我想出了:
SELECT
AssetID_1, AssetID_2,
((psum - (sum1 * sum2/n))/sqrt((sum1sq - sum1*sum1/n) * (sum2sq - sum2*sum2/n))) AS [Correlation Coefficient],
n
FROM
(SELECT
n1.AssetClass_ID AS AssetID_1,
n2.AssetClass_ID AS AssetID_2,
SUM(n1.RunResults_Value) AS sum1,
SUM(n2.RunResults_Value) AS sum2,
SUM(n1.RunResults_Value * n1.RunResults_Value) AS sum1sq,
SUM(n2.RunResults_Value * n2.RunResults_Value) AS sum2sq,
SUM(n1.RunResults_Value * n2.RunResults_Value) AS psum,
COUNT(*) AS n
FROM
dbo.tbl_RunResults AS n1
LEFT JOIN dbo.tbl_RunResults AS n2 ON n1.Simulation_ID = n2.Simulation_ID
WHERE
n1.AssetClass_ID < n2.AssetClass_ID AND
n1.series_ID = 2332 AND
n2.series_ID = 2332
GROUP BY
n1.AssetClass_ID, n2.AssetClass_ID) AS step1
ORDER BY
AssetID_1
答案匹配Excel內置功能到目前爲止,這麼好。
@musefan不要試圖聽起來像一個混蛋,但你到底在哪裏學會縮進? – 2012-01-12 15:10:31
@Norla:我只縮進了一次,以便前面的幾行和最後幾行都正確地包含在代碼塊中。原始縮進由海報完成 - 我不想改變。如果你想/可以隨意改進它(你在「編輯」評論中看到的內容與實際發佈的格式不一樣 - 你看不到舊的縮進) – musefan 2012-01-12 15:20:52
對不起,沒有發佈代碼,沒有檢查格式實際上並沒有打破地獄。 – 2012-01-12 15:28:48