में ट्रिम किए गए औसत गणना मैं एक ऐसा फ़ंक्शन लिखना चाहता हूं जो MySQL में एक साधारण छंटनी औसत गणना की गणना करता हो। समारोह (स्पष्ट रूप से) एक समग्र कार्य होगा। मैं MySQL में फ़ंक्शन इत्यादि लिखने के लिए नया हूं इसलिए कुछ मदद के साथ ऐसा कर सकता है।MySQL
CREATE AGGREGATE FUNCTION trimmed_mean(elements DOUBLE[], trim_size INTEGER)
RETURNS DOUBLE
BEGIN
-- determine number of elements
-- ensure that number of elements is greater than 2 * trim_size else return error
-- order elements in ASC order
-- chop off smallest trim_size elements and largest trim_size elements
-- calculate arithmetic average of the remaining elements
-- return arithmetic average
END
किसी को भी कैसे फ़ंक्शन ठीक ऊपर लिखने के लिए, MySQL साथ प्रयोग के लिए के साथ मदद कर सकते हैं:
छंटनी मतलब के एल्गोरिथ्म के रूप में (स्यूडोकोड) इस प्रकार किया जाएगा?
क्या कोई एक विशिष्ट कारण है कि आप इसे एक कार्य के रूप में कार्य के रूप में करना चाहते हैं? साथ ही, यह देखते हुए कि आपने पिछले प्रश्न का उत्तर पसंद किया क्योंकि यह मानक एसक्यूएल का इस्तेमाल करता है, क्या आपको इसे कई अलग-अलग आरडीबीएमएस (यानी न केवल MySQL) में उपयोग करने में सक्षम होना चाहिए? –
@ मार्कबैनिस्टर मैं पीजी (मेरा पसंदीदा डीबी!) के साथ काम करना चाहता था, लेकिन मुझे PHP के साथ काम करने के लिए पीजी प्राप्त करने के लिए बहुत सारे हुप्स से कूदना पड़ा (PHP [या समान पागल पूछताछ] आदि को फिर से बनाना), इसलिए मैंने mySQL का चयन किया मैं पहले ही PHP के साथ काम कर रहा हूं। एक समारोह के रूप में मैं इसे चाहता था कि मैं एक प्रश्न में एक स्तंभ के रूप में एक छंटनी मतलब वापस करना चाहता हूँ। मुझे लगता है (अगर मेरे पास एक एसक्यूएल समाधान था), तो मैं कुछ एसक्यूएल को अपने लौटाए गए डेटासेट में कॉलम के रूप में छंटनी वाले औसत मानों को 'पेस्ट' करने के लिए एक साथ हैक कर सकता था। –
@ मार्कबैनिस्टर: आपके प्रश्न का संक्षिप्त उत्तर। एक एएनएसआई एसक्यूएल संस्करण आदर्श होगा। लेकिन चूंकि मैं अपने एसक्यूएल के साथ काम कर रहा हूं, तो अगर मैं डीबी-केंद्रित होने के लिए __have__ करता हूं, तो एक MySQL स्वादित एसक्यूएल को प्राथमिकता दी जाएगी। –