מקרה של SQL עם הסכום וסעיף קבוצה לפי

Mqrh Sl Sql M Hskwm Ws Yp Qbwzh Lpy



במדריך זה, נלמד כיצד להשתמש במשפט CASE עם הפונקציה SUM ומשפט GROUP BY.

מדריך זה אינו מכסה את היסודות של עבודה עם משפט SQL Case, הפונקציה sum() או משפט GROUP BY. אם אתה מחפש את היסודות של תכונות SQL אלה, עיין במדריכי הלימוד שלנו בנושאים כדי לגלות עוד.







בְּעָיָה:

נניח שיש לנו טבלה בשם 'הזמנות' ואנו רוצים לקבל את סך המכירות עבור כל לקוח המקובצים לפי מספר לקוח, אבל אנחנו רוצים גם לחשב הנחה ללקוחות שביצעו יותר משתי הזמנות.



הטבלה מוצגת להלן:



צור הזמנות טבלה (
order_id INT PRIMARY KEY,
מזהה_לקוח INT,
מזהה_מוצר INT,
order_date DATE,
כמות INT,
מחיר דצימלי ( 10 , 2 )
) ;


הוסף נתונים לדוגמה לטבלה כפי שמוצג להלן:





INSERT INTO הזמנות ( order_id, customer_id, product_id, order_date, quantity, price )
ערכים
( 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 עם הסכום וסעיף קבוצה לפי

כדי להביא את סך המכירות עבור כל לקוח שמקובצים לפי תעודת זהות ולחשב את ההנחה עבור לקוחות שביצעו יותר משתי הזמנות, נוכל להשתמש בהצהרת CASE בשילוב עם סעיף SUM ו-GROUP BY כפי שמוצג להלן:

בחר orders.customer_id, סְכוּם ( הזמנות.כמות * הזמנות.מחיר * ( מקרה כאשר סופרים ( * ) > 2 לאחר מכן 0.9 אַחֵר 1 סוֹף ) ) כפי ש סך_מכירות מהזמנות;


בדוגמה הנתונה, אנו משתמשים במשפט SQL CASE כדי לבדוק אם הלקוח ביצע יותר משתי הזמנות.

אם לקוח ביצע יותר משתי הזמנות, אנו מכפילים את סך_המכירות ב-0.9 אשר מחיל הנחה של 10%.

סיכום

דנו כיצד אנו יכולים להשתמש במשפט SQL CASE עם הסעיף SUM() ו-GROUP BY.