नहीं, विश्लेषणात्मक कार्यों की कोई आवश्यकता नहीं है; वैसे भी एक ही क्वेरी में एक समग्र फ़ंक्शन के रूप में उनका होना मुश्किल है।
आप 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 से अधिक है, पहला मामला पहले ही पूरा हो चुका है।