Kasus SQL dengan Klausa Sum dan Group By

Kasus Sql Dengan Klausa Sum Dan Group By



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

Tutorial ini tidak membahas dasar-dasar bekerja dengan pernyataan SQL Case, fungsi sum(), atau klausa GROUP BY. Jika Anda mencari dasar-dasar fitur SQL ini, lihat tutorial kami tentang topik tersebut untuk mengetahui lebih lanjut.







Masalah:

Katakanlah kita memiliki tabel bernama 'pesanan' dan kita ingin mendapatkan total penjualan untuk setiap pelanggan yang dikelompokkan berdasarkan ID pelanggan, tetapi kita juga ingin menghitung diskon untuk pelanggan yang melakukan lebih dari dua pesanan.



Tabel tersebut ditunjukkan berikut ini:



BUAT pesanan TABEL (
order_id KUNCI UTAMA INT,
customer_id INT,
product_id INT,
tanggal_pesanan TANGGAL,
kuantitas INT,
harga DECIMAL ( 10 , 2 )
) ;


Masukkan data sampel ke dalam tabel seperti yang ditunjukkan berikut ini:





MASUKKAN KE DALAM pesanan ( order_id, customer_id, product_id, order_date, kuantitas, 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 harus membuat tabel sebagai berikut:



Kasus SQL dengan Klausa Sum dan Group By

Untuk mengambil total penjualan untuk setiap pelanggan yang dikelompokkan berdasarkan ID dan menghitung diskon untuk pelanggan yang memesan lebih dari dua, kita dapat menggunakan pernyataan KASUS bersama dengan klausa SUM dan GROUP BY seperti yang ditunjukkan berikut ini:

Pilih pesanan.customer_id, jumlah ( pesanan.jumlah * pesanan.harga * ( kasus ketika menghitung ( * ) > 2 Kemudian 0,9 kalau tidak 1 akhir ) ) sebagai total_sales dari pesanan;


Dalam contoh yang diberikan, kami menggunakan pernyataan KASUS SQL untuk memeriksa apakah pelanggan telah melakukan lebih dari dua pesanan.

Jika pelanggan telah melakukan lebih dari dua pesanan, kami mengalikan total_penjualan dengan 0,9 yang menerapkan diskon 10%.

Kesimpulan

Kita membahas bagaimana kita dapat menggunakan pernyataan SQL CASE dengan klausa SUM() dan GROUP BY.