Περίπτωση SQL με την ρήτρα Sum and Group By

Periptose Sql Me Ten Retra Sum And Group By



Σε αυτό το σεμινάριο, θα μάθουμε πώς να χρησιμοποιούμε τη δήλωση CASE με τη συνάρτηση SUM και έναν όρο GROUP BY.

Αυτό το σεμινάριο δεν καλύπτει τις βασικές αρχές της εργασίας με την πρόταση SQL Case, τη συνάρτηση sum() ή τον όρο GROUP BY. Αν ψάχνετε για τα βασικά αυτών των δυνατοτήτων SQL, ελέγξτε τα σεμινάρια μας για τα θέματα για να ανακαλύψετε περισσότερα.







Πρόβλημα:

Ας υποθέσουμε ότι έχουμε έναν πίνακα με το όνομα 'παραγγελίες' και θέλουμε να λάβουμε τις συνολικές πωλήσεις για κάθε πελάτη που ομαδοποιείται κατά αναγνωριστικό πελάτη, αλλά θέλουμε επίσης να υπολογίσουμε μια έκπτωση για πελάτες που έκαναν περισσότερες από δύο παραγγελίες.



Ο πίνακας φαίνεται παρακάτω:



ΔΗΜΙΟΥΡΓΙΑ ΤΡΑΠΕΖΙΩΝ παραγγελιών (
order_id ΚΥΡΙΟ ΚΛΕΙΔΙ INT,
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 , '02-04-2022' , 3 , 8,99 ) ,
( 4 , 101 , 3 , '03-04-2022' , 2 , 15,99 ) ,
( 5 , 102 , 1 , '03-04-2022' , 1 , 12,99 ) ,
( 6 , 104 , 2 , '04-04-2022' , 4 , 7,99 ) ,
( 7 , 103 , 3 , '05-04-2022' , 2 , 21,99 ) ,
( 8 , 101 , 2 , '06-04-2022' , 1 , 18.99 ) ,
( 9 , 104 , 1 , '07-04-2022' , 2 , 9,99 ) ,
( 10 , 102 , 3 , '07-04-2022' , 3 , 14,99 ) ;


Αυτό θα πρέπει να δημιουργήσει έναν πίνακα ως εξής:



Περίπτωση SQL με την ρήτρα Sum and Group By

Για να λάβουμε τις συνολικές πωλήσεις για κάθε πελάτη που ομαδοποιείται κατά αναγνωριστικό και να υπολογίσουμε την έκπτωση για πελάτες που έκαναν περισσότερες από δύο παραγγελίες, μπορούμε να χρησιμοποιήσουμε τη δήλωση CASE σε συνδυασμό με την ρήτρα SUM και GROUP BY όπως φαίνεται παρακάτω:

επιλέγω orders.customer_id, άθροισμα ( παραγγελίες.ποσότητα * παραγγελίες.τιμή * ( υπόθεση όταν μετράνε ( * ) > 2 έπειτα 0,9 αλλού 1 τέλος ) ) όπως και total_sales από παραγγελίες?


Στο συγκεκριμένο παράδειγμα, χρησιμοποιούμε τη δήλωση SQL CASE για να ελέγξουμε εάν ο πελάτης έχει κάνει περισσότερες από δύο παραγγελίες.

Εάν ένας πελάτης έχει κάνει περισσότερες από δύο παραγγελίες, πολλαπλασιάζουμε το σύνολο_πωλήσεων επί 0,9 που ισχύει έκπτωση 10%.

συμπέρασμα

Συζητήσαμε πώς μπορούμε να χρησιμοποιήσουμε την πρόταση SQL CASE με τον όρο SUM() και GROUP BY.