Loendage SQL-is mitme veeru eristuvad kombinatsioonid

Loendage Sql Is Mitme Veeru Eristuvad Kombinatsioonid



SQL-andmebaasides töötades võite kohata juhtumeid, kus peate leidma antud tabelist erinevad väärtused ja eemaldama dubleerivad väärtused. Enamasti kasutame eriklauslit, et määrata veerg, mille väärtusi soovime kordumatud olla.

Mis saab aga siis, kui soovite tagada, et mitme veeru väärtused on kordumatud ja duplikaate pole?







Selles õpetuses õpime, kuidas kasutada SQL-i funktsioone kahe või enama veeru valimiseks ja nende väärtuste eristamise tagamiseks.



Probleem:

Oletame, et meil on mitme veeruga tabel ja me tahame nendes veergudes loendada erinevate väärtuste kombinatsioonide arvu.



Näiteks vaatame müügiandmete tabelit veergude customer_id, product_id ja date veergudega. Soovime loendada unikaalsete kliendi_id ja toote_id kombinatsioonide arvu.





Loendage SQL-is mitme veeru eristuvad kombinatsioonid

Saame loendada erinevate kombinatsioonide arvu mitmes veerus, kasutades SQL-i COUNT DISTINCT-klauslit ja funktsiooni CONCAT.

Funktsioon CONCAT võimaldab meil ühendada kaks või enam väärtust üheks väärtuseks, mida saame seejärel kasutada võrdlemiseks ja loendamiseks.



Saame seda paremini illustreerida järgmise süntaksi abil:

VALI COUNT ( DISTINCT CONCAT ( veerg1, veerg2 ) )
FROM tabeli_nimi;


Sel juhul viitavad veerg1 ja veerg2 veergudele, mida soovime loendamise ajal ühendada, ja tabeli_nimi viitab sihttabeli nimele.

Võtame näidistabeli:

LOO TABEL müük (
id INT PRIMARY KEY,
customer_id INT,
product_id INT,
kuupäeva KUUPÄEV
) ;

Sisesta müügiväärtused
( 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' ) ;


Tulemustabel:


Eelmises tabelis veergude customer_id ja product_id unikaalsete kombinatsioonide arvu määramiseks saame päringut kasutada järgmiselt:

VALI COUNT ( DISTINCT CONCAT ( Kliendi ID, '-' , toote_id ) ) nagu tulemus
müügist;


Eelmises päringus kasutame atribuutide customer_id ja product_id väärtuste sidekriipsuga sidumiseks eraldiseisvat klauslit ja concat funktsiooni. See peaks looma iga kombinatsiooni jaoks ühe väärtuse, nagu on näidatud järgmises:


Siit saame loendusfunktsiooni abil loendada saadud tabelist ainulaadsed kombinatsioonid.

Järeldus

Loodame, et see õpetus aitas teid. Selles postituses avastasite, kuidas kombineerida erinevat klauslit, funktsiooni concat() ja loendusklauslit, et määrata kordumatuid väärtusi mitmest SQL-tabeli veerust.