mysql - यह मैट्रिक्स SQL ​​में कैसे काम करता है?



matrix group-by (2)

  1. SELECT बाद तालिका का नाम देना, यह पहचान करेगा कि किस तालिका का उल्लेख है। उस मामले में मुख्य रूप से उपयोगी है जहां दोनों तालिकाओं में समान स्तंभ नाम हैं।

  2. GROUP BY डेटा एकत्रित किया जाएगा और एक रिकॉर्ड प्रति समूह-मूल्य के अनुसार दिखाया जाएगा। यही है, आपके मामले में, आप केवल एक रिकॉर्ड प्रति पंक्ति-कॉलम संयोजन के साथ समाप्त होंगे।

https://src-bin.com

पूर्ण प्रकटीकरण, मैं एसक्यूएल पर एक noob हूँ

दो स्पार्स मैट्रिक्स ए और बी को देखते हुए परिभाषित किया गया है:

ए (पंक्ति_ंम्बर, कॉलम_ंम्बर, मान) और बी (पंक्ति_संख्या, स्तंभ_संख्या, मान)

मुझे नहीं पता कि यह क्वेरी दो मैट्रिक्स के गुणन को दर्शाती है:

SELECT A.row_number, B.column_number, SUM(A.value * B.value)
FROM A, B
WHERE A.column_number = B.row_number
GROUP BY A.row_number, B.column_number

मेरा भ्रम SUM वाक्यविन्यास और ग्रुप बाय / सेलेक्ट सिंटेक्स में है

तो मेरे समूह द्वारा / चयन भ्रम के लिए, मुझे समझ में नहीं आता है कि अभिव्यक्ति क्यों

SELECT कथन के बाद A.row_number और B.column_number आवश्यक हैं I

हमें यह क्यों निर्दिष्ट करना है कि जब हम पहले ही SELECT और WHERE का उपयोग कर रहे हैं? मेरे लिए ऐसा लगता है जैसे हम कह रहे हैं कि हम उन अभिव्यक्तियों (एरो_एनम्बर और बीकॉल_एनम्बर) का उपयोग करके चयन करना चाहते हैं, भले ही हमें पहले से ही WHERE से एक तालिका वापस दी गई हो। क्या यह सिर्फ कहना SELECT * के बारे में अधिक जानकारी नहीं देगा? मैं मान रहा हूं कि ग्रुप द्वारा बस आपको चयन कथन में उपयोग किए जाने वाले भावों को टाइप करने की आवश्यकता है, लेकिन मुझे यह सुनिश्चित करने के लिए नहीं पता है।

एसएम के लिए, मैं बस स्पष्ट करना चाहता हूं, एसएएम केवल एवल्यू और बीवल्यू का उपयोग कर रहा है जो कि WHERE द्वारा सही है? अन्यथा, आप सभी B.value के साथ सभी A.value गुणा करेंगे।

इनमें से किसी एक को स्पष्ट रूप से स्पष्ट रूप से उपयोगी होगा धन्यवाद!


Answer #1

परिभाषा के अनुसार दो मैट्रिक्स ए (एन, एम) और बी (एम, पी) का गुणा मैट्रिक्स सी (एन, पी) का उत्पादन करता है।

इसलिए गुणन के लिए एसक्यूएल को उसी डेटा संरचना को वापस करना चाहिए जैसा कि ए और बी के भंडारण के लिए किया गया था, जो तीन कॉलम है:

  • पंक्ति संख्या
  • COLUMN_NUMBER
  • मूल्य

, एक मूल्य प्रति (पंक्ति, स्तंभ) संयोजन के साथ

इस कारण आपको खंड में group by में पहले दो की आवश्यकता है

WHERE खंड SELECT से स्वतंत्र है। पहला सही रिकॉर्ड पाने के लिए जिम्मेदार है, सही कॉलम प्राप्त करने के लिए दूसरा।





sum