Kes SQL dengan Jumlah dan Kumpulan Mengikut Klausa

Kes Sql Dengan Jumlah Dan Kumpulan Mengikut Klausa



Dalam tutorial ini, kita akan belajar cara menggunakan pernyataan CASE dengan fungsi SUM dan klausa GROUP BY.

Tutorial ini tidak merangkumi asas bekerja dengan sama ada pernyataan SQL Case, fungsi sum() atau klausa GROUP BY. Jika anda sedang mencari asas ciri SQL ini, semak tutorial kami tentang topik untuk mengetahui lebih lanjut.







Masalah:

Katakan kami mempunyai jadual bernama 'pesanan' dan kami ingin mendapatkan jumlah jualan untuk setiap pelanggan yang dikumpulkan mengikut ID pelanggan, tetapi kami juga ingin mengira diskaun untuk pelanggan yang membuat lebih daripada dua pesanan.



Jadual ditunjukkan seperti berikut:



CIPTA pesanan JADUAL (
order_id INT UTAMA KUNCI,
customer_id INT,
product_id INT,
tarikh_pesanan DATE,
kuantiti INT,
harga PERPULUHAN ( 10 , 2 )
) ;


Masukkan data sampel ke dalam jadual seperti yang ditunjukkan dalam berikut:





MASUKKAN KE DALAM pesanan ( id_pesanan, id_pelanggan, id_produk, tarikh_pesanan, kuantiti, harga )
NILAI
( 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 ) ;


Ini sepatutnya membuat jadual seperti berikut:



Kes SQL dengan Jumlah dan Kumpulan Mengikut Klausa

Untuk mengambil jumlah jualan bagi setiap pelanggan yang dikumpulkan mengikut ID dan mengira diskaun untuk pelanggan yang membuat lebih daripada dua pesanan, kami boleh menggunakan penyata KES bersama-sama dengan klausa SUM dan GROUP BY seperti yang ditunjukkan dalam perkara berikut:

pilih orders.customer_id, jumlah ( pesanan.kuantiti * pesanan.harga * ( kes apabila dikira ( * ) > 2 kemudian 0.9 lain 1 tamat ) ) sebagai jumlah_jualan daripada pesanan;


Dalam contoh yang diberikan, kami menggunakan pernyataan SQL CASE untuk menyemak sama ada pelanggan telah membuat lebih daripada dua pesanan.

Jika pelanggan telah membuat lebih daripada dua pesanan, kami mendarabkan jumlah_jualan sebanyak 0.9 yang menggunakan diskaun 10%.

Kesimpulan

Kami membincangkan cara kami boleh menggunakan pernyataan SQL CASE dengan klausa SUM() dan GROUP BY.