sql - Suppress repeating values on subsequent rows -
item_no पैरेंट आइटम_no_child item_name text 123 3 xxx आइटम पानी के लिए प्रतिरोधी है 123 5 yyy आइटम गर्मी प्रतिरोधी है 123 6 zzz आइटम है ....
मैं माता-पिता के आइटम को इनपुट के रूप में दे रहा हूँ और बाल आइटम नंबर को पुनः प्राप्त कर रहा हूं। अब मुझे प्रत्येक बच्चे की वस्तु की पाठ्य जांचनी होगी और यदि उनके पास एक ही पाठ है तो मुझे आइटम_नाम को प्रदर्शित नहीं करना चाहिए और मुझे चाहिए।
विश्लेषणात्मक कार्य ऐसे विशिष्ट प्रश्नों को लागू करने का एक सुव्यवस्थित तरीका है:
< कोड> SELECT item_name से (SELECT item_name, ROW_NUMBER () पर (पाठ के अनुसार क्रम 1 से) आइटम से आर.एन. जहां आइटम_को मूल = 123) जहां आरएन = 1
संपादित करें:
कुछ स्पष्टीकरण, जैसा कि टिप्पणियों में अनुरोध किया गया है - row_number
एक विश्लेषणात्मक कार्य है (कभी-कभी इसे एक विंडोिंग फ़ंक्शन कहा जाता है) यह इनपुट की प्रति पंक्ति एक परिणाम देता है (जैसे कि एक पंक्ति फ़ंक्शन), लेकिन सभी अन्य पंक्तियों को भी ध्यान में रखता है (जैसे एक समग्र कार्य)। इस स्थिति में, row_number
बस वर्तमान पंक्ति की संख्या देता है (यानी, एक सरल काउंटर)। यह गिनती टेक्स्ट
( विभाजन द्वारा
खंड) के प्रत्येक मूल्य के अनुसार की जाती है। row_number
को आदेश
की आवश्यकता है, इसलिए यह पता है कि इन पंक्तियों की गणना कैसे करें चूंकि हम यहां पर ध्यान नहीं रखते हैं कि कौन सी पंक्ति ( text
के प्रत्येक मूल्य के अनुसार) पहले आता है, मैं केवल एक निरंतर 1
के द्वारा आदेश देता हूं।
Comments
Post a Comment