Saskaitiet atšķirīgās kombinācijas vairākās SQL kolonnās

Saskaitiet Atskirigas Kombinacijas Vairakas Sql Kolonnas



Strādājot SQL datu bāzēs, jūs varat saskarties ar tādiem gadījumiem, kad jums ir jāatrod atšķirīgas vērtības no dotās tabulas un jānoņem dublētās vērtības. Vairumā gadījumu mēs galvenokārt izmantojam atšķirīgo klauzulu, lai norādītu kolonnu, kuras vērtības ir tās, kuras mēs vēlamies būt unikālas.

Bet kas notiek, ja vēlaties nodrošināt, ka vērtības no vairākām kolonnām ir unikālas un ka nav dublikātu?







Šajā apmācībā mēs uzzināsim, kā izmantot SQL līdzekļus, lai atlasītu divas vai vairākas kolonnas un nodrošinātu, ka to vērtības ir atšķirīgas.



Problēma:

Pieņemsim, ka mums ir tabula ar vairākām kolonnām un mēs vēlamies saskaitīt atšķirīgu vērtību kombināciju skaitu šajās kolonnās.



Piemēram, aplūkosim pārdošanas datu tabulu ar slejām customer_id, product_id un date. Mēs vēlamies saskaitīt unikālo klientu_id un produkta_id kombināciju skaitu.





Saskaitiet atšķirīgās kombinācijas vairākās SQL kolonnās

Mēs varam saskaitīt atšķirīgo kombināciju skaitu vairākās kolonnās, izmantojot COUNT DISTINCT klauzulu un CONCAT funkciju SQL.

Funkcija CONCAT ļauj mums savienot divas vai vairākas vērtības vienā vērtībā, ko pēc tam varam izmantot, lai salīdzinātu un saskaitītu.



Mēs to varam labāk ilustrēt, izmantojot šādu sintaksi:

ATLASĪT SKAITS ( ATŠĶIRĪGA CONCAT ( kolonna 1, kolonna 2 ) )
NO tabulas_nosaukums;


Šajā gadījumā kolonna1 un kolonna 2 attiecas uz kolonnām, kuras skaitīšanas laikā vēlamies savienot, un tabulas_nosaukums attiecas uz mērķa tabulas nosaukumu.

Ņemsim parauga tabulu:

IZVEIDOT TABULU izpārdošanu (
id INT PRIMĀRĀ ATSLĒGA,
customer_id INT,
product_id INT,
datums DATUMS
) ;

INSERT INTO pārdošanas VĒRTĪBAS
( 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” ) ;


Rezultātu tabula:


Lai noteiktu unikālo klientu_id un produkta_id kolonnu kombināciju skaitu no iepriekšējās tabulas, mēs varam izmantot vaicājumu šādi:

ATLASĪT SKAITS ( ATŠĶIRĪGA CONCAT ( klienta_id, '-' , produkta_id ) ) rezultāts
NO pārdošanas;


Iepriekšējā vaicājumā mēs izmantojam atšķirīgo klauzulu un concat funkciju, lai saistītu klienta_id un produkta_id vērtības ar defisi. Tam ir jāizveido viena vērtība katrai kombinācijai, kā parādīts tālāk.


No šejienes mēs varam izmantot skaitīšanas funkciju, lai saskaitītu unikālās kombinācijas no iegūtās tabulas.

Secinājums

Mēs ceram, ka šī apmācība jums palīdzēja. Šajā ziņojumā jūs atklājāt, kā apvienot atšķirīgo klauzulu, funkciju concat() un skaitīšanas klauzulu, lai noteiktu unikālās vērtības no vairākām SQL tabulas kolonnām.