Laske SQL:n useiden sarakkeiden erilliset yhdistelmät

Laske Sql N Useiden Sarakkeiden Erilliset Yhdistelmat



Kun työskentelet SQL-tietokannassa, saatat kohdata sellaisia ​​tapauksia, joissa sinun on löydettävä erilliset arvot tietystä taulukosta ja poistettava päällekkäiset arvot. Useimmissa tapauksissa käytämme pääasiassa erillislausetta määrittääksemme sarakkeen, jonka arvot ovat yksilöllisiä.

Mutta mitä tapahtuu, kun haluat varmistaa, että useiden sarakkeiden arvot ovat yksilöllisiä eikä päällekkäisiä ole?







Tässä opetusohjelmassa opimme käyttämään SQL-ominaisuuksia kahden tai useamman sarakkeen valitsemiseen ja varmistamaan, että niiden arvot eroavat toisistaan.



Ongelma:

Oletetaan, että meillä on taulukko, jossa on useita sarakkeita ja haluamme laskea näiden sarakkeiden erilaisten arvojen yhdistelmien määrän.



Tarkastellaan esimerkiksi myyntitietojen taulukkoa, jossa on sarakkeet customer_id, product_id ja date. Haluamme laskea yksilöllisten asiakastunnus- ja tuotetunnus-yhdistelmien lukumäärän.





Laske SQL:n useiden sarakkeiden erilliset yhdistelmät

Voimme laskea erillisten yhdistelmien määrän useissa sarakkeissa käyttämällä COUNT DISTINCT -lausetta ja CONCAT-funktiota SQL:ssä.

CONCAT-funktion avulla voimme ketjuttaa kaksi tai useampia arvoja yhdeksi arvoksi, jota voimme sitten käyttää vertailuun ja laskemiseen.



Voimme havainnollistaa tätä paremmin käyttämällä seuraavaa syntaksia:

VALITSE COUNT ( DISTINCT CONCAT ( sarake1, sarake2 ) )
FROM taulukon_nimi;


Tässä tapauksessa sarake1 ja sarake2 viittaavat sarakkeisiin, jotka haluamme ketjuttaa laskennan aikana, ja taulukon_nimi viittaa kohdetaulukon nimeen.

Otetaan esimerkkitaulukko:

LUO PÖYTÄMYYNTI (
id INT PRIMARY KEY,
customer_id INT,
product_id INT,
Päivämäärä PÄIVÄMÄÄRÄ
) ;

LISÄÄ myyntiarvoihin
( 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' ) ;


Tuloksena oleva taulukko:


Voit määrittää edellisen taulukon asiakastunnus- ja tuotetunnus-sarakkeiden yksilöllisten yhdistelmien määrän käyttämällä kyselyä seuraavasti:

VALITSE COUNT ( DISTINCT CONCAT ( Asiakas ID, '-' , Tuotetunnus ) ) kuten tulos
Myynnistä;


Edellisessä kyselyssä käytämme erillistä lausetta ja concat-funktiota ketjuttaaksemme asiakkaan_id- ja product_id-arvot yhdysviivalla. Tämän pitäisi luoda yksi arvo kullekin yhdistelmälle seuraavan kuvan mukaisesti:


Tästä eteenpäin voimme käyttää laskentatoimintoa laskeaksemme ainutlaatuiset yhdistelmät tuloksena olevasta taulukosta.

Johtopäätös

Toivomme, että tämä opetusohjelma auttoi sinua. Tässä viestissä huomasit kuinka yhdistää erillinen lauseke, concat()-funktio ja count-lause määrittääksesi yksilölliset arvot useista SQL-taulukon sarakkeista.