आपको लगता है कि समस्या यह है कि प्रत्येक कॉलम का एक अलग पैमाना होता है और इसलिए आप उन्हें आसानी से जोड़ नहीं सकते। व्हाइटनिंग नामक तकनीक का उपयोग करके इस समस्या को हल किया जा सकता है। इसमें प्रत्येक कॉलम के औसत और मानक विचलन की गणना करना शामिल है (आप इसे 1 SQL कथन में कर सकते हैं) और फिर चयन करते समय प्रत्येक कॉलम को इस पर पुनर्विक्रय करना:
colSortPos = (colValue-colMean) / colStdev
ऐसा करने से आपको लगभग 0 के आसपास का प्रत्येक कॉलम मिलेगा जो +/- 1 की सीमा के भीतर +/- 1 मानक विचलन है। फिर चाल इन्हें संयोजित करना है ताकि समान तिथियां एक साथ हों। यहाँ समस्या यह है कि यह कोई द्वि-आयामी समस्या नहीं है और इसलिए आपको बहुआयामी रूप से सोचने की आवश्यकता है। तो मेरा सुझाव है कि यूक्लिडियन दूरी को अपने क्रमबद्ध क्रम के रूप में लें।
SELECT
date,
i,
j,
k,
SQRT( POW(([email protected])/@iStdDEv, 2) + POW(([email protected])/@jStdDEv, 2) + POW(([email protected])/@kStdDEv, 2) )
AS
sort_order
FROM
table
ORDER BY
sort_order
इसके साथ एकमात्र समस्या यह है कि यह आपकी समस्या को 1 आयामी स्थान पर प्रोजेक्ट करता है जिससे आप कुछ सहसंबंधों को याद कर सकते हैं। इसके आसपास काम करने के लिए मेरा सुझाव है कि K- साधन जैसी क्लस्टरिंग तकनीक का उपयोग करें जो लागू करने के लिए बहुत सरल है और वास्तव में तेज़ है। यह आपको अपनी तिथियों को k समूहों में समूहित करने की अनुमति देगा जो सबसे अधिक समानता प्रदर्शित करते हैं [ http:// en.wikipedia.org/wiki/K-means_clustering ]. यदि आपके पास कच्चा डेटा है और आप इन (और अन्य) तकनीकों के साथ खेलना चाहते हैं तो मेरा सुझाव है कि वीका टूलकिट [http://www.cs.waikato.ac.nz/ml/weka/ ] जो आपको इन तकनीकों के साथ खेलने देगा।