Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

मानों के एक ही ब्लॉक से संबंधित मानों को अलग किए बिना कई अद्वितीय मान प्राप्त करें

यह एक पूर्ण उत्तर नहीं है, लेकिन मैं टिप्पणियों में बहुत सारे प्रश्न नहीं लिखना चाहता।
आपका मुख्य लक्ष्य लोगों को जानकारी भेजना है, और उस स्थिति से बचना है जब एक व्यक्ति को दो बार फैक्स प्राप्त होता है। तो आपको सबसे पहले अद्वितीय प्राप्तकर्ताओं की एक सूची चाहिए, जैसे:

select distinct otherid
  from NR_PVO_120

अगर एक व्यक्ति के पास दो फ़ैक्स नंबर हैं, तो आपको तय करना होगा कि किसे चुनना है:

select otherid, fax
  from (select otherid, fax, row_number() over (partition by otherid order by <choosing rule>) rn
          from NR_PVO_120)
 where rn = 1

(यह सब आपके पास पिछले प्रश्न के उत्तर में है)
यदि आप फ़ैक्स नंबरों की इस सूची को लेते हैं, तो आपके सभी प्राप्तकर्ताओं को फ़ैक्स प्राप्त होता है, और प्रत्येक व्यक्ति के लिए केवल एक फ़ैक्स। लेकिन कुछ फैक्स नंबरों का उपयोग नहीं किया जाएगा। आप उन्हें आसानी से ढूंढ सकते हैं:

select otherid, fax
  from (select otherid, fax, row_number() over (partition by otherid order by <choosing rule>) rn
          from NR_PVO_120)
 where rn > 1

यदि आप इनमें से किसी भी नंबर पर फैक्स भेजते हैं, तो कुछ लोगों को एक बार दो बार फैक्स मिलता है। जैसा कि मैं आपके प्रश्न में देख सकता हूं, संभवतः आपको अपने प्रश्न में फैक्स नंबरों के क्रम को संख्या प्राथमिकता के रूप में उपयोग करने की आवश्यकता है (उच्च संख्या तालिका में स्थित है - इसका उपयोग करने की उच्च संभावना)। ऐसा लगता है कि आप निम्न का उपयोग कर सकते हैं:

select otherid, fax
  from (select otherid, fax, row_number() over (partition by otherid order by row) rn
          from NR_PVO_120)
 where rn = 1

यहां row order by क्लॉज एक row है आपकी उदाहरण तालिका से।

यूपीडी
पी. एस। मेरी आखिरी क्वेरी के बारे में:हमारे पास निश्चित ऑर्डर वाली एक टेबल है, और ऑर्डर महत्वपूर्ण है। हम टेबल लाइन की पंक्तियों को लाइन से लेते हैं। पहली पंक्ति लें और उसका otherid डालें और fax परिणाम तालिका के लिए। फिर अगली पंक्ति लें। अगर इसमें एक और fax शामिल है संख्या और otherid , हम इसे लेते हैं, अगर otherid पहले से ही हमारे परिणाम तालिका में, हम इसे छोड़ देते हैं। क्या आपने यह एल्गोरिथम पूछा था?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आप sqlplus में START का उपयोग करके एक sql फ़ाइल के भीतर PL/SQL ब्लॉक के लिए तर्क कैसे पास करते हैं?

  2. Oracle में SQL क्वेरी के इनपुट के रूप में फ़ाइल से पढ़े गए मान पास करें

  3. CEIL () Oracle में फंक्शन

  4. ORA-12170:TNS:कनेक्ट टाइमआउट हुआ

  5. Oracle में डुप्लिकेट पंक्तियों को हटाने के 2 तरीके