Prebrojite različite kombinacije u više stupaca u SQL-u

Prebrojite Razlicite Kombinacije U Vise Stupaca U Sql U



Kada radite u SQL bazama podataka, možete naići na takve slučajeve u kojima morate pronaći različite vrijednosti iz dane tablice i ukloniti duplicirane vrijednosti. U većini slučajeva uglavnom koristimo klauzulu distinct za određivanje stupca čije su vrijednosti ono što želimo da bude jedinstveno.

Ali što se događa kada želite osigurati da su vrijednosti iz više stupaca jedinstvene i da nema duplikata?







U ovom vodiču naučit ćemo kako koristiti SQL značajke za odabir dva ili više stupaca i osigurati da su njihove vrijednosti različite.



Problem:

Pretpostavimo da imamo tablicu s više stupaca i želimo izbrojati različite kombinacije vrijednosti u tim stupcima.



Na primjer, razmotrimo tablicu podataka o prodaji sa stupcima customer_id, product_id i datum. Želimo prebrojati broj jedinstvenih kombinacija customer_id i product_id.





Prebrojite različite kombinacije u više stupaca u SQL-u

Možemo prebrojati broj različitih kombinacija u više stupaca pomoću klauzule COUNT DISTINCT i funkcije CONCAT u SQL-u.

Funkcija CONCAT omogućuje nam povezivanje dviju ili više vrijednosti u jednu vrijednost koju zatim možemo koristiti za usporedbu i brojanje.



Ovo možemo bolje ilustrirati pomoću sljedeće sintakse:

ODABERI BROJ ( DISTINCT CONCAT ( stupac1, stupac2 ) )
FROM ime_tablice;


U ovom slučaju stupac1 i stupac2 odnose se na stupce koje želimo spojiti tijekom brojanja, a naziv_tablice odnosi se na naziv ciljne tablice.

Uzmimo oglednu tablicu:

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

INSERT INTO prodajne VRIJEDNOSTI
( 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' ) ;


Rezultirajuća tablica:


Kako bismo odredili broj jedinstvenih kombinacija stupaca customer_id i product_id iz prethodne tablice, možemo upotrijebiti upit na sljedeći način:

ODABERI BROJ ( DISTINCT CONCAT ( customer_id, '-' , Identifikacijski broj proizvoda ) ) kao proizlaziti
OD prodaje;


U prethodnom upitu koristimo klauzulu distinct i funkciju concat za spajanje vrijednosti customer_id i product_id s crticom. Ovo bi trebalo stvoriti jednu vrijednost za svaku kombinaciju kao što je prikazano u nastavku:


Odavde možemo koristiti funkciju brojanja za brojanje jedinstvenih kombinacija iz rezultirajuće tablice.

Zaključak

Nadamo se da vam je ovaj vodič pomogao. U ovom ste postu otkrili kako kombinirati klauzulu distinct, funkciju concat() i klauzulu count da odredite jedinstvene vrijednosti iz više stupaca SQL tablice.