SQL-tapaus, jossa on summa ja ryhmittelylause

Sql Tapaus Jossa On Summa Ja Ryhmittelylause



Tässä opetusohjelmassa opimme käyttämään CASE-käskyä SUM-funktion ja GROUP BY -lauseen kanssa.

Tämä opetusohjelma ei kata SQL Case -käskyn, sum()-funktion tai GROUP BY -lauseen käytön perusteita. Jos etsit näiden SQL-ominaisuuksien perusteita, tutustu aiheita koskeviin opetusohjelmiimme.







Ongelma:

Oletetaan, että meillä on taulukko nimeltä 'tilaukset' ja haluamme saada kunkin asiakastunnuksen mukaan ryhmitellyn asiakkaan kokonaismyynnin, mutta haluamme myös laskea alennuksen asiakkaille, jotka ovat tehneet enemmän kuin kaksi tilausta.



Taulukko näkyy seuraavassa:



LUO TABLE-tilaukset (
order_id INT PRIMARY KEY,
customer_id INT,
product_id INT,
order_date DATE,
määrä INT,
hinta DECIMAL ( 10 , 2 )
) ;


Lisää esimerkkitiedot taulukkoon seuraavan kuvan mukaisesti:





INSERT INTO tilauksiin ( tilaustunnus, asiakastunnus, tuotetunnus, tilauspäivämäärä, määrä, hinta )
ARVOT
( 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 ) ;


Tämän pitäisi luoda taulukko seuraavasti:



SQL-tapaus, jossa on summa ja ryhmittelylause

Voimme käyttää CASE-lausetta yhdessä SUM- ja GROUP BY -lausekkeen kanssa, jotta voimme noutaa kunkin tunnuksen mukaan ryhmitellyn asiakkaan kokonaismyynnin ja laskea alennuksen asiakkaille, jotka ovat tehneet enemmän kuin kaksi tilausta:

valitse orders.customer_id, summa ( tilaukset.määrä * tilaukset.hinta * ( tapaus kun lasketaan ( * ) > 2 sitten 0.9 muu 1 loppu ) ) kuten kokonaismyynti tilauksista;


Annetussa esimerkissä tarkistamme SQL CASE -käskyn avulla, onko asiakas tehnyt enemmän kuin kaksi tilausta.

Jos asiakas on tehnyt enemmän kuin kaksi tilausta, kerromme myynnin kokonaismäärän 0,9:llä, mikä antaa 10 % alennuksen.

Johtopäätös

Keskustelimme siitä, kuinka voimme käyttää SQL CASE -käskyä SUM()- ja GROUP BY -lauseen kanssa.