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

समूहों के उपसमूह पर COUNT फ़ंक्शन लागू करें

नहीं, विश्लेषणात्मक कार्यों की कोई आवश्यकता नहीं है; वैसे भी एक ही क्वेरी में एक समग्र फ़ंक्शन के रूप में उनका होना मुश्किल है।

आप case ढूंढ रहे हैं स्टेटमेंट फिर से, आपको बस इसे ग्रुप बाय में डालना है।

select hire_year
     , sum(married) as married
     , sum(certified) as certified
     , sum(religious) as religious
     , case when salary > 2000 then 'A'
            when salary >= 1000 then 'B'
            else 'C' end as salary_class
  from employees
 group by hire_year
     , case when salary > 2000 then 'A'
            when salary >= 1000 then 'B'
            else 'C' end

ध्यान दें कि मैंने आपकी count(case when...) बदल दी है करने के लिए sum() . ऐसा इसलिए है क्योंकि आप बूलियन 1/0 का उपयोग कर रहे हैं, इसलिए यह उसी तरह काम करेगा लेकिन यह बहुत अधिक साफ है।

इसी कारण से मैंने आपके between पर ध्यान नहीं दिया है आपके वेतन गणना में; इसकी कोई विशेष आवश्यकता नहीं है जैसे कि वेतन 2000 से अधिक है, पहला मामला पहले ही पूरा हो चुका है।




  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. PLSQL संकलन त्रुटियों का पता कैसे लगाएं

  3. अपवाद के बाद मर्ज जारी रखें

  4. SQL त्रुटि:ORA-14006:अमान्य विभाजन नाम

  5. सही मान नहीं लौटाने के बीच के महीने