सम और ग्रुप बाय क्लॉज के साथ SQL केस

Sama Aura Grupa Baya Kloja Ke Satha Sql Kesa



इस ट्यूटोरियल में, हम सीखेंगे कि एसयूएम फंक्शन और ग्रुप बाय क्लॉज के साथ केस स्टेटमेंट का उपयोग कैसे करें।

यह ट्यूटोरियल SQL केस स्टेटमेंट, योग () फ़ंक्शन या ग्रुप बाय क्लॉज के साथ काम करने के मूल सिद्धांतों को कवर नहीं करता है। यदि आप इन SQL सुविधाओं की मूल बातें खोज रहे हैं, तो आगे की खोज के लिए विषयों पर हमारे ट्यूटोरियल देखें।







संकट:

मान लें कि हमारे पास 'ऑर्डर' नाम की एक तालिका है और हम ग्राहक आईडी द्वारा समूहित प्रत्येक ग्राहक के लिए कुल बिक्री प्राप्त करना चाहते हैं, लेकिन हम दो से अधिक ऑर्डर देने वाले ग्राहकों के लिए छूट की गणना भी करना चाहते हैं।



तालिका निम्नलिखित में दिखाई गई है:



टेबल ऑर्डर बनाएं (
order_id INT प्राथमिक कुंजी,
ग्राहक_आईडी आईएनटी,
उत्पाद_आईडी आईएनटी,
आदेश_दिनांक दिनांक,
मात्रा आईएनटी,
मूल्य दशमलव ( 10 , 2 )
) ;


तालिका में एक नमूना डेटा डालें, जैसा कि निम्नलिखित में दिखाया गया है:





आदेश में सम्मिलित करें ( ऑर्डर_आईडी, ग्राहक_आईडी, उत्पाद_आईडी, ऑर्डर_डेट, मात्रा, मूल्य )
मान
( 1 , 101 , 1 , '2022-04-01' , 2 , 10.99 ) ,
( 2 , 102 , 2 , '2022-04-01' , 1 , 19.99 ) ,
( 3 , 103 , 1 , '2022-04-02' , 3 , 8.99 ) ,
( 4 , 101 , 3 , '2022-04-03' , 2 , 15.99 ) ,
( 5 , 102 , 1 , '2022-04-03' , 1 , 12.99 ) ,
( 6 , 104 , 2 , '2022-04-04' , 4 , 7.99 ) ,
( 7 , 103 , 3 , '2022-04-05' , 2 , 21.99 ) ,
( 8 , 101 , 2 , '2022-04-06' , 1 , 18.99 ) ,
( 9 , 104 , 1 , '2022-04-07' , 2 , 9.99 ) ,
( 10 , 102 , 3 , '2022-04-07' , 3 , 14.99 ) ;


इसे निम्नानुसार तालिका बनानी चाहिए:



सम और ग्रुप बाय क्लॉज के साथ SQL केस

आईडी द्वारा समूहीकृत प्रत्येक ग्राहक के लिए कुल बिक्री प्राप्त करने और दो से अधिक ऑर्डर देने वाले ग्राहकों के लिए छूट की गणना करने के लिए, हम SUM और GROUP BY क्लॉज के संयोजन में CASE स्टेटमेंट का उपयोग कर सकते हैं जैसा कि निम्नलिखित में दिखाया गया है:

चुनना आदेश.ग्राहक_आईडी, जोड़ ( आदेश मात्रा * आदेश।कीमत * ( मामला जब गिनती ( * ) > 2 तब 0.9 अन्य 1 अंत ) ) जैसा ऑर्डर से कुल_बिक्री;


दिए गए उदाहरण में, हम SQL CASE स्टेटमेंट का उपयोग यह जांचने के लिए करते हैं कि ग्राहक ने दो से अधिक ऑर्डर दिए हैं या नहीं।

यदि किसी ग्राहक ने दो से अधिक ऑर्डर दिए हैं, तो हम कुल_बिक्री को 0.9 से गुणा करते हैं जो 10% छूट लागू करता है।

निष्कर्ष

हमने चर्चा की कि हम SUM() और GROUP BY क्लॉज के साथ SQL CASE स्टेटमेंट का उपयोग कैसे कर सकते हैं।