मैं निम्न तालिका को अद्यतन करने के लिए कुछ मदद (अधिमानतः एक डमी की मार्गदर्शिका) इस्तेमाल कर सकते हैं में बंद शेयर की कीमतों के सरल चलती औसत के साथ अद्यतन करने की मेज:गिना जा रहा है और MySQL
CREATE TABLE `SYMBOL` (
`day` date NOT NULL,
`open` decimal(8,3) DEFAULT NULL,
`high` decimal(8,3) DEFAULT NULL,
`low` decimal(8,3) DEFAULT NULL,
`close` decimal(8,3) DEFAULT NULL,
`volume` bigint(20) DEFAULT NULL,
`adj_close` decimal(8,3) DEFAULT NULL,
`moving_average` decimal(8,3) DEFAULT NULL,
PRIMARY KEY (`day`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
moving_average स्तंभ अब खाली है। अन्य सभी कॉलम आबादी वाले हैं (समय के लिए, मैं "स्थैतिक" होने के साथ ठीक हूं, मुझे पंक्तियों को जोड़ने के रूप में अपडेट करने की आवश्यकता नहीं है - हालांकि यदि यह करना आसान है, तो यह बहुत अच्छा होगा)। यह एक 20-दिन चलने वाला औसत है जिसे मैं गणना करने की आशा करता हूं।
How do I calculate a moving average using MySQL?
मेरे प्रश्न यह है::
मैं चरणों मेरी क्षमता का सबसे अच्छा करने के लिए यहाँ प्रदर्शन से कोशिश की है
SELECT
`close`,
(
SELECT
AVG(`close`) AS moving_average
FROM
SYMBOL T2
WHERE
(
SELECT
COUNT(*)
FROM
SYMBOL T3
WHERE
`day` BETWEEN T2.day AND T1.day
) BETWEEN 1 AND 20
)
FROM
SYMBOL T1
मैं क्वेरी सही ढंग से संशोधित है? Moving_average कॉलम में परिणामों को लिखने के लिए क्या करने की आवश्यकता है?
जब मैं ऊपर चलाता हूं, कुछ भी नहीं होता है (यह कहता है कि यह चल रहा है, कोई त्रुटि नहीं है, इसे लंबे समय तक चलाने के बाद मैंने इसे अभी रोक दिया है)। कॉलम moving_average अभी भी शून्य मान है।
मैं भी इस सवाल का जवाब को देखा: How to calculated multiple moving average in MySQL
हालांकि, मैं अनिश्चित मैं क्या मेरी मेज के लिए उत्तर के लिए बदलने की जरूरत है हूँ।
किसी भी मदद की सराहना की जाती है।
- एक
update
क्वेरी जो आपकी सारणी के प्रत्येक पंक्ति को अद्यतन करता - एक संग्रहीत प्रक्रिया है कि काम
मैं व्यक्तिगत रूप से विकल्प पसंद करता है बनाएँ:
आपके द्वारा पोस्ट किए गए बयान में कोई अपडेट कथन नहीं है। बस एक चयन करें। स्वाभाविक रूप से, इसका मतलब है कि कुछ भी अपडेट नहीं होगा। – SchmitzIT