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

कीवर्ड द्वारा Oracle विभाजन

PARTITION BY क्लॉज रिकॉर्ड्स की रेंज सेट करता है जिसका उपयोग प्रत्येक "ग्रुप" के लिए OVER . के भीतर किया जाएगा खंड।

आपके उदाहरण में SQL, DEPT_COUNT प्रत्येक कर्मचारी रिकॉर्ड के लिए उस विभाग के भीतर कर्मचारियों की संख्या लौटाएगा। (ऐसा लगता है जैसे आप emp . को नामांकित कर रहे हैं टेबल; आप अभी भी emp . में हर रिकॉर्ड लौटाते हैं टेबल।)

emp_no  dept_no  DEPT_COUNT
1       10       3
2       10       3
3       10       3 <- three because there are three "dept_no = 10" records
4       20       2
5       20       2 <- two because there are two "dept_no = 20" records

यदि कोई अन्य स्तंभ था (उदा., state ) तो आप गिन सकते हैं कि उस राज्य में कितने विभाग हैं।

यह एक GROUP BY . के परिणाम प्राप्त करने जैसा है (SUM , AVG , आदि) परिणाम सेट को एकत्रित किए बिना (यानी मिलान रिकॉर्ड को हटाकर)।

यह तब उपयोगी होता है जब आप LAST OVER . का उपयोग करते हैं या MIN OVER उदाहरण के लिए, विभाग में सबसे कम और उच्चतम वेतन प्राप्त करने के लिए कार्य करता है और फिर इसका उपयोग इस रिकॉर्ड वेतन के खिलाफ गणना में करता है बिना एक उप-चयन, जो बहुत तेज़ है।

अधिक जानकारी के लिए लिंक किया गया आस्कटॉम लेख पढ़ें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-12557 TNS:प्रोटोकॉल एडेप्टर लोड करने योग्य नहीं है

  2. न्यूल सेट करें:SQLcl/SQL*Plus में जब भी कोई शून्य मान होता है तो लौटने के लिए एक स्ट्रिंग निर्दिष्ट करें

  3. ORA-03115 प्राप्त करना:अज्ञात pl/sql से varchar की सरणी लाते समय असमर्थित नेटवर्क डेटाटाइप या प्रतिनिधित्व त्रुटि

  4. rs.last () केवल फॉरवर्ड परिणाम के लिए अमान्य ऑपरेशन देता है:last

  5. मेरे द्वारा चलाए जा रहे Oracle क्लाइंट का कौन सा संस्करण निर्धारित करने का सबसे अच्छा तरीका क्या है?