यहां एक SQL क्वेरी है जो आपको शुरू करनी चाहिए (यह मानते हुए कि आप प्रति कॉलम इसकी गणना करना चाहते हैं):
create table normalize as
select
(RT - min(RT)over()) / (max(RT)over() - min(RT)over()) * 0.8 + 0.1 as RT_norm
from test;
मैंने इस क्वेरी का परीक्षण sqlite3 में किया, MySQL में नहीं। यह आवश्यक रूप से इष्टतम नहीं है, लेकिन सहज रूप से सूत्र का अनुसरण करता है। नोटिस, over
न्यूनतम / अधिकतम कुल कार्यों को विंडो फ़ंक्शंस में बदल देता है, जिसका अर्थ है कि वे पूरे कॉलम को देखते हैं, लेकिन परिणाम प्रत्येक पंक्ति पर दोहराया जाता है।
तोदो
आपको अभी भी यह करना होगा:
- पायथन के माध्यम से MySQl क्वेरी भेजें
- प्रत्येक कॉलम के लिए समान कोड दोहराएं
- प्रत्येक कॉलम को एक नाम दें
- परिणामी तालिका को एक स्कीमा (सबसे अधिक संभावना) के लिए असाइन करें
- यदि कॉलम अधिकतम और न्यूनतम बराबर हैं, तो 0 से भाग को हैंडल करें