Microsoft SQL Server
विंडो फ़ंक्शन
खोज…
मूविंग एवरेज केंद्रित
6-महीने (126-व्यावसायिक-दिन) की गणना एक मूल्य की चलती औसत:
SELECT TradeDate, AVG(Px) OVER (ORDER BY TradeDate ROWS BETWEEN 63 PRECEDING AND 63 FOLLOWING) AS PxMovingAverage
FROM HistoricalPrices
ध्यान दें, क्योंकि यह ट्रेड की गई श्रेणी के आरंभ और अंत में, प्रत्येक लौटी हुई पंक्ति के पहले और बाद में 63 पंक्तियों तक ले जाएगा, यह केंद्रित नहीं होगा: जब यह सबसे बड़े TradeDate तक पहुँचता है, तो यह केवल 63 पूर्ववर्ती मानों को खोजने में सक्षम होगा औसत में शामिल हैं।
टाइमस्टैम्पड घटनाओं की सूची में एकल सबसे हालिया आइटम खोजें
तालिकाओं की रिकॉर्डिंग की घटनाओं में अक्सर एक डेटाइम फ़ील्ड होती है, जिस समय कोई घटना घटती है। एकल सबसे हाल की घटना को खोजना मुश्किल हो सकता है क्योंकि यह हमेशा संभव है कि दो घटनाओं को बिल्कुल समान टाइमस्टैम्प के साथ दर्ज किया गया था। आप यह सुनिश्चित करने के लिए कि सभी रिकॉर्ड विशिष्ट रूप से रैंक किए गए हैं, और शीर्ष एक (जहाँ my_ranking = 1) का चयन करने के लिए आप row_number () से अधिक (ऑर्डर करके ...) का उपयोग कर सकते हैं।
select *
from (
select
*,
row_number() over (order by crdate desc) as my_ranking
from sys.sysobjects
) g
where my_ranking=1
इसी तकनीक का उपयोग संभावित डुप्लिकेट मानों के साथ किसी भी डेटासेट से एक पंक्ति को वापस करने के लिए किया जा सकता है।
पिछले 30 आइटम का मूविंग एवरेज
बेची गई अंतिम 30 वस्तुओं का मूविंग एवरेज
SELECT
value_column1,
( SELECT
AVG(value_column1) AS moving_average
FROM Table1 T2
WHERE ( SELECT
COUNT(*)
FROM Table1 T3
WHERE date_column1 BETWEEN T2.date_column1 AND T1.date_column1
) BETWEEN 1 AND 30
) as MovingAvg
FROM Table1 T1