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

क्या मैं विंडो फ़ंक्शन के साथ SQL क्वेरी में समूह बना सकता हूं?

याद रखने वाली पहली बात यह है कि विंडो वाले फ़ंक्शन (जैसे OVER() क्लॉज) क्वेरी के परिणाम पर काम करते हैं। वह है:सर्वर पहले क्वेरी को निष्पादित करता है और उसके बाद ही आपके द्वारा परिभाषित विंडो वाले फ़ंक्शन को लागू करता है।

इसका मतलब है कि आप वास्तव में एक ही क्वेरी में विंडोड फ़ंक्शन और समूह द्वारा क्लॉज का उपयोग कर सकते हैं, लेकिन आपको इसे इस तरह से एनकैप्सुलेट करने की आवश्यकता है:

SELECT department_id,
       min(min(salary)) OVER (partition by department_id) as minsalary
FROM employees
GROUP BY department_id;

हालांकि, मैं मानता हूं कि विंडोड फ़ंक्शन का उपयोग करने के लिए यह एक अच्छी जगह नहीं है। मैट का प्रस्ताव यहां सबसे अच्छा है (ROW_NUMBER() CTE में या subquery , फिर मुख्य SELECT . में केवल वांछित पंक्तियों का चयन करें )।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. स्रोत तालिका से रिकॉर्ड हटाएं जिन्हें संग्रहीत प्रक्रिया के माध्यम से लक्ष्य तालिका में स्थानांतरित कर दिया गया है

  2. Oracle डाटाबेस 21c

  3. ओरेकल जेडीबीसी कनेक्शन का उपयोग करते समय डेटाबेस स्कीमा नाम कैसे प्राप्त करें?

  4. Oracle में डेटाटाइम प्रारूप तत्वों की सूची

  5. ORA-03113:संचार चैनल पर फ़ाइल का अंत