Suskaičiuokite skirtingus derinius keliuose SQL stulpeliuose

Suskaiciuokite Skirtingus Derinius Keliuose Sql Stulpeliuose



Dirbdami su SQL duomenų bazėmis galite susidurti su tokiais atvejais, kai turite rasti atskiras reikšmes iš nurodytos lentelės ir pašalinti pasikartojančias reikšmes. Daugeliu atvejų mes daugiausia naudojame atskirą sąlygą, kad nurodytume stulpelį, kurio reikšmes norime turėti unikalias.

Bet kas atsitiks, kai norite užtikrinti, kad kelių stulpelių reikšmės būtų unikalios ir nebūtų pasikartojančių?







Šioje pamokoje sužinosime, kaip naudoti SQL funkcijas, kad būtų galima pasirinkti du ar daugiau stulpelių ir užtikrinti, kad jų reikšmės būtų skirtingos.



Problema:

Tarkime, kad turime lentelę su keliais stulpeliais ir norime suskaičiuoti skirtingų reikšmių derinių šiuose stulpeliuose skaičių.



Pavyzdžiui, panagrinėkime pardavimo duomenų lentelę su stulpeliais „customer_id“, „product_id“ ir „data“. Norime suskaičiuoti unikalių kliento_id ir produkto_id derinių skaičių.





Suskaičiuokite skirtingus derinius keliuose SQL stulpeliuose

Galime suskaičiuoti skirtingų kombinacijų skaičių keliuose stulpeliuose naudodami COUNT DISTINCT sąlygą ir CONCAT funkciją SQL.

Funkcija CONCAT leidžia sujungti dvi ar daugiau reikšmių į vieną reikšmę, kurią vėliau galime naudoti palyginimui ir skaičiavimui.



Tai galime geriau iliustruoti naudodami šią sintaksę:

PASIRINKTI SKAIČIUS ( ATSKIRTI CONCAT ( 1 stulpelis, 2 stulpelis ) )
FROM lentelės_pavadinimas;


Šiuo atveju 1 stulpelis ir 2 stulpelis nurodo stulpelius, kuriuos norime sujungti skaičiuodami, o lentelės_pavadinimas nurodo tikslinės lentelės pavadinimą.

Paimkime pavyzdinę lentelę:

KURTI LENTELĘ pardavimus (
id INT PIRMINIS RAKTAS,
customer_id INT,
product_id INT,
data DATA
) ;

ĮRAŠYTI Į pardavimo VERTES
( 1 , 100 , 1 , „2023-05-01“ ) ,
( 2 , 101 , 1 , „2023-05-02“ ) ,
( 3 , 100 , 2 , „2023-05-02“ ) ,
( 4 , 102 , 3 , „2023-05-03“ ) ,
( 5 , 101 , 2 , „2023-05-03“ ) ,
( 6 , 103 , 2 , „2023-05-04“ ) ,
( 7 , 100 , 3 , „2023-05-04“ ) ,
( 8 , 102 , 1 , „2023-05-05“ ) ,
( 9 , 101 , 3 , „2023-05-05“ ) ,
( 10 , 103 , 1 , „2023-05-06“ ) ;


Rezultatų lentelė:


Norėdami nustatyti unikalių kliento_id ir produkto_id stulpelių derinių skaičių iš ankstesnės lentelės, užklausą galime naudoti taip:

PASIRINKTI SKAIČIUS ( ATSKIRTI CONCAT ( Kliento ID, '-' , produkto_id ) ) kaip rezultatas
IŠ pardavimų;


Ankstesnėje užklausoje naudojame atskirą sąlygą ir concat funkciją, kad sujungtume kliento_id ir produkto_id reikšmes su brūkšneliu. Tai turėtų sukurti vieną reikšmę kiekvienam deriniui, kaip parodyta toliau:


Iš čia galime naudoti skaičiavimo funkciją, kad suskaičiuotume unikalius derinius iš gautos lentelės.

Išvada

Tikimės, kad ši pamoka jums padėjo. Šiame įraše sužinojote, kaip sujungti atskirą sąlygą, funkciją concat() ir skaičiavimo sąlygą, kad nustatytumėte unikalias reikšmes iš kelių SQL lentelės stulpelių.