Spočítajte odlišné kombinácie vo viacerých stĺpcoch v SQL

Spocitajte Odlisne Kombinacie Vo Viacerych Stlpcoch V Sql



Pri práci v SQL databázach sa môžete stretnúť s takými prípadmi, kedy musíte nájsť odlišné hodnoty z danej tabuľky a odstrániť duplicitné hodnoty. Vo väčšine prípadov používame hlavne odlišnú klauzulu na určenie stĺpca, ktorého hodnoty sú také, aké chceme, aby boli jedinečné.

Čo sa však stane, keď chcete zabezpečiť, aby hodnoty z viacerých stĺpcov boli jedinečné a neexistovali žiadne duplikáty?







V tomto návode sa naučíme, ako používať funkcie SQL na výber dvoch alebo viacerých stĺpcov a zabezpečiť, aby boli ich hodnoty odlišné.



problém:

Predpokladajme, že máme tabuľku s viacerými stĺpcami a chceme spočítať počet rôznych kombinácií hodnôt v týchto stĺpcoch.



Zoberme si napríklad tabuľku údajov o predaji so stĺpcami customer_id, product_id a date. Chceme spočítať počet jedinečných kombinácií customer_id a product_id.





Spočítajte odlišné kombinácie vo viacerých stĺpcoch v SQL

Pomocou klauzuly COUNT DISTINCT a funkcie CONCAT v SQL môžeme spočítať počet odlišných kombinácií vo viacerých stĺpcoch.

Funkcia CONCAT nám umožňuje spojiť dve alebo viac hodnôt do jednej hodnoty, ktorú potom môžeme použiť na porovnávanie a počítanie.



Môžeme to lepšie ilustrovať pomocou nasledujúcej syntaxe:

VYBERTE POČET ( ODLIŠNÁ KONKAT ( stĺpec1, stĺpec2 ) )
FROM názov_tabuľky;


V tomto prípade stĺpce1 a stĺpec2 odkazujú na stĺpce, ktoré chceme zreťaziť pri počítaní, a názov_tabuľky odkazuje na názov cieľovej tabuľky.

Zoberme si vzorovú tabuľku:

CREATE TABLE predaj (
id INT PRIMÁRNY KĽÚČ,
customer_id INT,
product_id INT,
dátum DÁTUM
) ;

VLOŽTE DO HODNOT predajov
( 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' ) ;


Výsledná tabuľka:


Na určenie počtu jedinečných kombinácií stĺpcov customer_id a product_id z predchádzajúcej tabuľky môžeme použiť dotaz takto:

VYBERTE POČET ( ODLIŠNÁ KONKAT ( customer_id, '-' , identifikačné číslo produktu ) ) ako výsledok
Z predaja;


V predchádzajúcom dotaze používame odlišnú klauzulu a funkciu concat na zreťazenie hodnôt customer_id a product_id so spojovníkom. To by malo vytvoriť jednu hodnotu pre každú kombináciu, ako je uvedené nižšie:


Odtiaľ môžeme pomocou funkcie počítania spočítať jedinečné kombinácie z výslednej tabuľky.

Záver

Dúfame, že vám tento návod pomohol. V tomto príspevku ste zistili, ako skombinovať odlišnú klauzulu, funkciu concat() a klauzulu počtu na určenie jedinečných hodnôt z viacerých stĺpcov tabuľky SQL.