sql - To convert a table into a specific format in Mysql -
मेरे पास 1.7 मिलियन पंक्तियाँ हैं तालिका संरचना (Datapoint, AttributeName, AttributeValue) है।
पहला कॉलम i। Datapoint समान है: (1, AttributeName1, Attributevalue1) (1, AttributeName2.Attributevalue2)। । N बार (2, विशेषता नाम 1, विशेषता संख्या 1) (2, विशेषता नाम 2, विशेषताव्यू 2)। । एम बार (11113, एट्रिब्यूटनाम 1, विशेषताव्यू 1) (11113, एट्रिब्यूटनाम 2, एट्रिबेंटव्यू 2)। । Ptimesमुझे एसक्यूएल में एक प्रक्रिया लिखनी होगी जो उपरोक्त डेटा को नीचे प्रारूप में परिवर्तित कर देता है:
(Datapoint, AttributeName1, AttributeName2, ........... ..ऍटिबेट नैनें) (1,, विशेषतावल्क 1, विशेषताव्यू 2, .........................) (2,, विशेषतावल्क 1, एटिट्यूड वैल्यू 2, .... .....................) (11113,, विशेषतावल्क 1, एटिट्यूड वैल्यू 2, .................... .....)कृपया मुझे इसके बारे में जाने के बारे में बताएं। धन्यवाद
MySQL में धुएं फ़ंक्शन नहीं है लेकिन आप डेटा को बदल सकते हैं
मामला अभिव्यक्ति:
चुनें डेटापॉइंट, मैक्स (जब attributeName = 'attributeName1' तो विशेषताव्यू समाप्त होता है) के रूप में attributeName1 के रूप में एक समस्त कार्य का उपयोग करके पंक्तियों में स्तंभों में से अधिकतम (AttributeName = 'attributeName2' के बाद के बाद attributeValue end) के रूप में attributeName2, max (जब attributeName = 'attributeName3' तब attributeValue end) के रूप में attributeName3, max (case जब attributeName = 'attributeName4' तो attributeValue end) के रूप में attributeName4 के रूप में yourtable समूह द्वारा डेटापॉइंट
उपरोक्त संस्करण बहुत अच्छा काम करेगा यदि आपके पास ज्ञात संख्याएं हैं लेकिन अगर आपके पास स्तंभों में परिवर्तन करने के लिए अज्ञात संख्या में आइटम हैं, तो आपको गतिशील एसक्यूएल उत्पन्न करने के लिए एक तैयार कथन का उपयोग करना होगा। आपको निम्नलिखित आलेख की समीक्षा करनी चाहिए:
कोड इसी तरह होगा:
SET @sql = NULL; SELECT GROUP_CONCAT (अलग कन्कैट ('अधिकतम (मामले जब attributeName =' '', attributeName, '' तो विशेषता विशेषतायें END) AS '', विशेषता नाम, '`')) आपके तालिका से @ sql में; SET @sql = CONCAT ('का चयन करें डेटापॉइंट,', @ एसक्यूएल, 'अपनेटेबल ग्रुप से' डाटापॉइंट '); एसएसएमटी से एसएसएमएल तैयार करें; EXTUTE STMT; DEALLOCATE STMT;
Comments
Post a Comment