Sum ve Group By Clause ile SQL Örneği

Sum Ve Group By Clause Ile Sql Ornegi



Bu öğreticide, CASE deyimini SUM işlevi ve bir GROUP BY yan tümcesi ile nasıl kullanacağımızı öğreneceğiz.

Bu öğretici, SQL Case deyimi, sum() işlevi veya GROUP BY yan tümcesi ile çalışmanın temellerini kapsamaz. Bu SQL özelliklerinin temellerini arıyorsanız, daha fazlasını keşfetmek için konularla ilgili eğitimlerimize göz atın.







Sorun:

Diyelim ki 'siparişler' adlı bir tablomuz var ve müşteri kimliğine göre gruplandırılmış her müşteri için toplam satışları almak istiyoruz, ancak ikiden fazla sipariş veren müşteriler için de bir indirim hesaplamak istiyoruz.



Tablo aşağıda gösterilmiştir:



TABLO OLUŞTUR siparişleri (
order_id INT BİRİNCİL ANAHTAR,
müşteri kimliği INT,
ürün_kimliği INT,
sipariş_tarihi TARİH,
miktar INT,
fiyat ondalık ( 10 , 2 )
) ;


Aşağıda gösterildiği gibi tabloya bir örnek veri ekleyin:





SİPARİŞLERE EKLE ( order_id, customer_id, product_id, order_date, miktar, fiyat )
DEĞERLER
( 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 ) ;


Bu, aşağıdaki gibi bir tablo oluşturmalıdır:



Sum ve Group By Clause ile SQL Örneği

Kimliğe göre gruplandırılmış her müşterinin toplam satışını getirmek ve ikiden fazla sipariş veren müşteriler için indirimi hesaplamak için aşağıda gösterildiği gibi CASE deyimini SUM ve GROUP BY yan tümcesi ile birlikte kullanabiliriz:

seçme siparişler.müşteri_kimliği, toplam ( siparişler.miktar * siparişler.fiyat * ( dava sayım ne zaman ( * ) > 2 Daha sonra 0.9 başka 1 son ) ) gibi siparişlerden total_sales;


Verilen örnekte, müşterinin ikiden fazla sipariş verip vermediğini kontrol etmek için SQL CASE deyimini kullanıyoruz.

Bir müşteri ikiden fazla sipariş verdiyse, toplam_satışları %10 indirim uygulayan 0,9 ile çarparız.

Çözüm

SUM() ve GROUP BY yan tümcesi ile SQL CASE deyimini nasıl kullanabileceğimizi tartıştık.