سم اور گروپ بذریعہ شق کے ساتھ SQL کیس

Sm Awr Grwp Bdhry Shq K Sat Sql Kys



اس ٹیوٹوریل میں، ہم سیکھیں گے کہ CASE اسٹیٹمنٹ کو SUM فنکشن اور GROUP BY شق کے ساتھ کیسے استعمال کیا جائے۔

اس ٹیوٹوریل میں SQL کیس اسٹیٹمنٹ، sum() فنکشن، یا GROUP BY شق کے ساتھ کام کرنے کے بنیادی اصولوں کا احاطہ نہیں کیا گیا ہے۔ اگر آپ ایس کیو ایل کی ان خصوصیات کی بنیادی باتیں تلاش کر رہے ہیں تو مزید دریافت کرنے کے لیے عنوانات پر ہمارے ٹیوٹوریلز کو دیکھیں۔







مسئلہ:

ہم کہتے ہیں کہ ہمارے پاس 'آرڈرز' کے نام سے ایک ٹیبل ہے اور ہم ہر ایک کسٹمر کے لیے کل سیلز حاصل کرنا چاہتے ہیں جو کسٹمر آئی ڈی کے لحاظ سے گروپ کیے گئے ہیں، لیکن ہم ان صارفین کے لیے بھی ڈسکاؤنٹ کا حساب لگانا چاہتے ہیں جنہوں نے دو سے زیادہ آرڈرز کیے ہیں۔



ٹیبل مندرجہ ذیل میں دکھایا گیا ہے:



ٹیبل آرڈرز بنائیں (
آرڈر_آئی ڈی بنیادی کلید،
customer_id INT،
product_id INT،
آرڈر_تاریخ DATE،
مقدار INT،
قیمت اعشاریہ ( 10 ، 2 )
) ;


ٹیبل میں نمونہ ڈیٹا داخل کریں جیسا کہ درج ذیل میں دکھایا گیا ہے:





آرڈرز میں داخل کریں۔ ( آرڈر_آئی ڈی، کسٹمر_آئی ڈی، پروڈکٹ_آئی ڈی، آرڈر_ڈیٹ، مقدار، قیمت )
قدریں
( 1 ، 101 ، 1 ، '01-04-2022' ، 2 ، 10.99 ) ،
( 2 ، 102 ، 2 ، '01-04-2022' ، 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 کیس

ID کے لحاظ سے گروپ کردہ ہر گاہک کی کل فروخت حاصل کرنے اور دو سے زیادہ آرڈر دینے والے صارفین کے لیے رعایت کا حساب لگانے کے لیے، ہم CASE بیان کو SUM اور GROUP BY شق کے ساتھ استعمال کر سکتے ہیں جیسا کہ درج ذیل میں دکھایا گیا ہے:

منتخب کریں orders.customer_id، رقم ( orders.quantity * orders.price * ( معاملہ جب شمار ( * ) > 2 پھر 0.9 اور 1 اختتام ) ) کے طور پر آرڈرز سے کل_سیلز؛


دی گئی مثال میں، ہم یہ چیک کرنے کے لیے SQL CASE سٹیٹمنٹ استعمال کرتے ہیں کہ آیا صارف نے دو سے زیادہ آرڈرز کیے ہیں۔

اگر کسی گاہک نے دو سے زیادہ آرڈرز کیے ہیں، تو ہم کل_سیلز کو 0.9 سے ضرب دیتے ہیں جس پر 10% رعایت لاگو ہوتی ہے۔

نتیجہ

ہم نے تبادلہ خیال کیا کہ ہم کس طرح SUM() اور GROUP BY شق کے ساتھ SQL CASE بیان استعمال کر سکتے ہیں۔