Preštejte različne kombinacije v več stolpcih v SQL

Prestejte Razlicne Kombinacije V Vec Stolpcih V Sql



Pri delu v bazah podatkov SQL lahko naletite na takšne primere, ko morate najti različne vrednosti iz dane tabele in odstraniti podvojene vrednosti. V večini primerov večinoma uporabljamo klavzulo distinct, da določimo stolpec, katerega vrednosti so tiste, za katere želimo, da so edinstvene.

Toda kaj se zgodi, ko želite zagotoviti, da so vrednosti iz več stolpcev edinstvene in da ni dvojnikov?







V tej vadnici se bomo naučili, kako uporabiti funkcije SQL za izbiro dveh ali več stolpcev in zagotoviti, da so njihove vrednosti različne.



Težava:

Recimo, da imamo tabelo z več stolpci in želimo prešteti število različnih kombinacij vrednosti v teh stolpcih.



Na primer, razmislimo o tabeli podatkov o prodaji s stolpci customer_id, product_id in datum. Želimo prešteti število edinstvenih kombinacij customer_id in product_id.





Preštejte različne kombinacije v več stolpcih v SQL

Z uporabo klavzule COUNT DISTINCT in funkcije CONCAT v SQL lahko preštejemo število različnih kombinacij v več stolpcih.

Funkcija CONCAT nam omogoča združevanje dveh ali več vrednosti v eno samo vrednost, ki jo lahko nato uporabimo za primerjavo in štetje.



To lahko bolje ponazorimo z naslednjo sintakso:

IZBERI ŠTEV ( DISTINCT CONCAT ( stolpec1, stolpec2 ) )
FROM ime_tabele;


V tem primeru se stolpec1 in stolpec2 nanašata na stolpce, ki jih želimo združiti med štetjem, ime_tabele pa se nanaša na ime ciljne tabele.

Vzemimo vzorčno tabelo:

CREATE TABLE prodaja (
id INT PRIMARNI KLJUČ,
customer_id INT,
product_id INT,
datum DATUM
) ;

VSTAVITE V VREDNOSTI prodaje
( 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' ) ;


Končna tabela:


Za določitev števila edinstvenih kombinacij stolpcev customer_id in product_id iz prejšnje tabele lahko uporabimo poizvedbo na naslednji način:

IZBERI ŠTEV ( DISTINCT CONCAT ( identifikacijska številka stranke, '-' , product_id ) ) kot rezultat
OD prodaje;


V prejšnji poizvedbi uporabljamo klavzulo distinct in funkcijo concat, da z vezajem združimo vrednosti customer_id in product_id. To bi moralo ustvariti eno samo vrednost za vsako kombinacijo, kot je prikazano v nadaljevanju:


Od tu lahko uporabimo funkcijo štetja za štetje edinstvenih kombinacij iz nastale tabele.

Zaključek

Upamo, da vam je ta vadnica pomagala. V tej objavi ste odkrili, kako združiti klavzulo distinct, funkcijo concat() in klavzulo štetje, da določite edinstvene vrednosti iz več stolpcev tabele SQL.