एसएएस: proc sql में having क्लॉज का उपयोग कैसे करें


आप एक निश्चित शर्त को पूरा करने वाली पंक्तियों को फ़िल्टर करने के लिए SAS में PROC SQL में HAVING क्लॉज का उपयोग कर सकते हैं।

WHERE और HAVING उपवाक्यों के बीच सूक्ष्म अंतर पर ध्यान दें:

  • जहां समूहीकरण होने से पहले पंक्तियों को फ़िल्टर किया जाता है।
  • किसी भी समूहीकरण के बाद पंक्तियों को फ़िल्टर करना

निम्नलिखित उदाहरण दिखाता है कि व्यवहार में HAVING क्लॉज का उपयोग कैसे करें।

उदाहरण: PROC SQL में HAVING क्लॉज का उपयोग कैसे करें

मान लीजिए कि हमारे पास एसएएस में निम्नलिखित डेटासेट है जिसमें विभिन्न बास्केटबॉल खिलाड़ियों के बारे में जानकारी है:

 /*create dataset*/
data my_data;
    input team $position $points;
    datalines ;
A Guard 22
A Guard 20
A Guard 30
A Forward 14
A Forward 11
B Guard 12
B Guard 22
B Forward 30
B Forward 9
B Forward 12
B Forward 25
C Guard 22
C Guard 19
C Guard 10
;
run ;

/*view dataset*/
proc print data =my_data; 

हम प्रत्येक टीम में खिलाड़ियों द्वारा बनाए गए अंकों के योग की गणना करने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं, जहां खिलाड़ी गार्ड हैं, फिर परिणामों को फ़िल्टर करके केवल 50 से अधिक अंकों वाली टीमों को दिखाएं:

 proc sql ;
    select team, sum(points) as sum_points
    from my_data
    where position='Guard'
    group by team
    having sum_points > 50 ;
quit ; 

यहां बताया गया है कि यह कोड कैसे काम करता है:

  • सबसे पहले, हमने टीम और अंकों का योग चुनने के लिए SELECT का उपयोग किया
  • फिर हमने उन पंक्तियों को फ़िल्टर करने के लिए WHERE का उपयोग किया जहां स्थिति “गार्ड” थी
  • इसके बाद, हमने परिणामों को टीम के आधार पर समूहीकृत करने के लिए GROUP का उपयोग किया
  • इसके बाद, हमने > 50 अंकों के योग वाली टीमों को फ़िल्टर करने के लिए HAVING का उपयोग किया।

यदि हमने HAVING कथन शामिल नहीं किया होता तो इस क्वेरी के परिणाम इस प्रकार दिखते:

 proc sql ;
    select team, sum(points) as sum_points
    from my_data
    where position='Guard'
    group by team;
quit ; 

ध्यान दें कि टीम बी के अंकों का योग 50 से अधिक नहीं था।

इसलिए जब हमने पिछले उदाहरण में HAVING कथन का उपयोग किया, तो हमने टीम B को फ़िल्टर कर दिया क्योंकि उनके अंकों का योग 50 से अधिक नहीं था।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि एसएएस में अन्य सामान्य कार्य कैसे करें:

एसएएस: PROC SQL में LIKE ऑपरेटर का उपयोग कैसे करें
एसएएस: PROC SQL में IN ऑपरेटर का उपयोग कैसे करें
एसएएस: PROC SQL में WHERE ऑपरेटर का उपयोग कैसे करें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *