2016-04-04 9 views
0

işaretleme listesi boyunca günlük 1 yıllık ortalamaları yuvarlamak için kendi kendine katılmayı kullanmaya çalışıyorum. Aşağıdaki kod, her bir tıklama ve tarih için değişecek benzersiz sonuçlar sağlamak yerine, tüm tıklamaların ve tarihlerin genelinde bir ortalama sağlamayı amaçlamaktadır. (Başka bir deyişle, çıktıdaki üçüncü sütun tamamen aynıdır, ancak her satır aslında benzersiz olmalıdır).Tarihsel bir haddeleme ortalamasını hesaplamak için kendi kendine birleştirme nasıl kullanılır?

Burada herhangi bir tavsiye var mı? Sen alt sorguda fazladan JOIN var

SELECT [Ticker], [Date], 
(SELECT AVG(T.[Close]) 
FROM [intradayOHLC_Selected_Closing_Prices_Staging] AS T 
JOIN [intradayOHLC_Selected_Closing_Prices_Staging] AS O2 
ON T.[Ticker] = O2.[Ticker] 
AND T.[Date] between O2.[Date 250 Days Ago] AND O2.[Date]) 
FROM [intradayOHLC_Selected_Closing_Prices_Staging] AS O2 
+0

Hangi veritabanını kullanıyorsunuz? –

+0

Çok teşekkür ederim. Bu mükemmel – Treyvon

+0

Ve sorunuzu cevaplamak için, bu SQL Server 2012 ve kendi finansal veritabanım. Teşekkürler – Treyvon

cevap

0

teşekkür ederim. Bu gerekli değil. Bağlantılı bir alt soruna ihtiyacın var.

SELECT [Ticker], [Date], 
     (SELECT AVG(T.[Close]) 
     FROM [intradayOHLC_Selected_Closing_Prices_Staging] AS T 
     WHERE T.[Ticker] = O2.[Ticker] AND 
       T.[Date] between O2.[Date 250 Days Ago] AND O2.[Date] 
     ) as RollingAverage 
FROM [intradayOHLC_Selected_Closing_Prices_Staging] AS O2; 
İlgili konular