sql - one record from each group? -
मेरे पास इस तरह एक मेज है:
x1 | Y1 | X2 | Y2 | क्षेत्र | रंग 5 | 0 | 5 | 0 | 1 | आर 5 | 0 | 6 | 0 | 2 | जी 5 | 1 | 5 | 0 | 2 | बी 5 | 1 | 5 | 1 | 2 | आर 5 | 2 | 5 | 0 | 3 | जी 5 | 2 | 5 | 1 | 3 | बी
मैं एक एसक्यूएल क्वेरी का निर्माण कैसे कर सकता हूं ताकि परिणामस्वरूप तालिका में एक आर, जी, बी (अधिकतम क्षेत्र वाले प्रत्येक) के एक < Em> इस रिकॉर्ड के निर्देशांक को संरक्षित करें? मैंने MAX (क्षेत्र) और ग्रुप द्वारा रंग की कोशिश की है, लेकिन इससे मुझे आर, जी, बी के लिए अधिकतम क्षेत्र के साथ रिकार्ड मिल जाता है, लेकिन उनके निर्देशांक के साथ मिलकर नहीं।
मैं PostgreSQL नमूना आउटपुट का उपयोग कर रहा हूं (ऊपर के लिए ), कुछ ऐसा होना चाहिए:
5 | 1 | 5 | 1 | 2 | आर 5 | 2 | 5 | 0 | 3 | जी 5 | 2 | 5 | 1 | 3 | बी
असल में इसे चौथा, 5 वें और 6 वें रिकॉर्ड को वापस करना चाहिए।
आपका प्रश्न थोड़ा अस्पष्ट है, लेकिन मुझे लगता है कि आप यह चाहते हैं:
SELECT T2। * से (चयन रंग, अधिकतम (क्षेत्र) एएस क्षेत्र से तालिका 1 ग्रुप द्वारा रंग) एएस टी 1 तालिका 1 में जुड़ें टी 2 ऑन टी 1.रेआ = टी 2.रेआ और टी 1 कॉरलर = टी 2 कॉरल ध्यान दें कि यह मानता है कि अधिकतम क्षेत्र अद्वितीय है, अन्यथा आपको कई पंक्तियां मिलेंगी। < / P>
आपके डेटा के लिए आउटपुट:
x1 | X2 | Y1 | Y2 | क्षेत्र | रंग 5 | 1 | 5 | 1 | 2 | आर 5 | 2 | 5 | 0 | 3 | जी 5 | 2 | 5 | 1 | 3 | बी
यदि आप एक बेहतर जवाब चाहते हैं, तो कृपया उन सभी सवालों को स्पष्ट करें जिन्हें मैंने टिप्पणी के रूप में पोस्ट किया है (उनमें से कुछ छिपे हुए हैं)।
Comments
Post a Comment