حالة SQL مع Sum و Group By Clause

Halt Sql M Sum W Group By Clause



في هذا البرنامج التعليمي ، سوف نتعلم كيفية استخدام جملة CASE مع دالة SUM وعبارة GROUP BY.

لا يغطي هذا البرنامج التعليمي أساسيات العمل مع عبارة SQL Case أو دالة sum () أو جملة GROUP BY. إذا كنت تبحث عن أساسيات ميزات SQL هذه ، فتحقق من البرامج التعليمية الخاصة بنا حول الموضوعات لاكتشاف المزيد.







مشكلة:

لنفترض أن لدينا جدولًا باسم 'الطلبات' ونرغب في الحصول على إجمالي المبيعات لكل عميل تم تجميعه حسب الرقم التعريفي للعميل ، ولكننا نريد أيضًا حساب خصم للعملاء الذين قدموا أكثر من طلبين.



الجدول موضح في الآتي:



إنشاء أوامر الجدول (
order_id INT PRIMARY KEY ،
customer_id INT ،
product_id INT ،
order_date DATE ،
كمية INT ،
السعر العشري ( 10 و 2 )
) ؛


أدخل عينة من البيانات في الجدول كما هو موضح في ما يلي:





أدخل الأوامر ( order_id ، customer_id ، product_id ، order_date ، والكمية ، والسعر )
قيم
( 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 Clause

لجلب إجمالي المبيعات لكل عميل تم تجميعه حسب المعرف وحساب الخصم للعملاء الذين قدموا أكثر من طلبين ، يمكننا استخدام بيان الحالة جنبًا إلى جنب مع جملة SUM و GROUP BY كما هو موضح في ما يلي:

يختار الطلبات. مجموع ( الطلبات * الطلبات. السعر * ( قضية عند العد ( * ) > 2 ثم 0.9 آخر 1 نهاية ) ) مثل إجمالي_المبيعات من الطلبات ؛


في المثال المعطى ، نستخدم عبارة SQL CASE للتحقق مما إذا كان العميل قد قدم أكثر من طلبين.

إذا قدم العميل أكثر من طلبين ، فإننا نضرب إجمالي المبيعات في 0.9 مما يطبق خصمًا بنسبة 10٪.

خاتمة

ناقشنا كيف يمكننا استخدام عبارة SQL CASE مع جملة SUM () و GROUP BY.