Bilangin ang Mga Natatanging Kumbinasyon sa Maramihang Mga Haligi sa SQL

Bilangin Ang Mga Natatanging Kumbinasyon Sa Maramihang Mga Haligi Sa Sql



Kapag nagtatrabaho sa mga database ng SQL, maaari kang makatagpo ng mga ganitong pagkakataon kung saan kailangan mong hanapin ang mga natatanging halaga mula sa isang ibinigay na talahanayan at alisin ang mga duplicate na halaga. Sa karamihan ng mga kaso, pangunahing ginagamit namin ang natatanging sugnay upang tukuyin ang column na ang mga halaga ay kung ano ang nais naming maging kakaiba.

Ngunit ano ang mangyayari kapag gusto mong tiyakin na ang mga halaga mula sa maraming column ay natatangi at walang mga duplicate?







Sa tutorial na ito, matututunan natin kung paano gamitin ang mga feature ng SQL upang pumili ng dalawa o higit pang column at matiyak na naiiba ang mga value ng mga ito.



Problema:

Ipagpalagay na mayroon kaming isang talahanayan na may maraming mga column at gusto naming bilangin ang bilang ng mga natatanging kumbinasyon ng mga halaga sa mga column na ito.



Halimbawa, isaalang-alang natin ang isang talahanayan ng data ng mga benta na may mga column ng customer_id, product_id, at petsa. Gusto naming bilangin ang bilang ng mga natatanging kumbinasyon ng customer_id at product_id.





Bilangin ang Mga Natatanging Kumbinasyon sa Maramihang Mga Haligi sa SQL

Maaari naming bilangin ang bilang ng mga natatanging kumbinasyon sa maraming column gamit ang COUNT DISTINCT clause at ang CONCAT function sa SQL.

Ang CONCAT function ay nagbibigay-daan sa amin upang pagsamahin ang dalawa o higit pang mga halaga sa isang solong halaga na pagkatapos ay maaari naming gamitin upang ihambing at bilangin.



Mas maisalarawan natin ito gamit ang sumusunod na syntax:

PUMILI NG BILANG ( DISTINCT CONCAT ( column1, column2 ) )
MULA sa table_name;


Sa kasong ito, ang column1 at column2 ay tumutukoy sa mga column na gusto naming pagsamahin habang nagbibilang at ang table_name ay tumutukoy sa pangalan ng target na talahanayan.

Kumuha tayo ng sample table:

GUMAWA NG benta ng TABLE (
id INT PRIMARY KEY,
customer_id INT,
product_id INT,
petsa DATE
) ;

INSERT SA MGA HALAGA NG benta
( 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' ) ;


Nagreresultang Talahanayan:


Upang matukoy ang bilang ng mga natatanging kumbinasyon ng customer_id at ang product_id na mga column mula sa nakaraang talahanayan, maaari naming gamitin ang query tulad ng sumusunod:

PUMILI NG BILANG ( DISTINCT CONCAT ( customer_id, '-' , product_id ) ) bilang resulta
MULA sa mga benta;


Sa nakaraang query, ginagamit namin ang natatanging sugnay at ang concat function upang pagsamahin ang mga halaga ng customer_id at product_id sa isang gitling. Dapat itong lumikha ng isang halaga para sa bawat kumbinasyon tulad ng ipinapakita sa sumusunod:


Mula dito, magagamit natin ang function ng count upang mabilang ang mga natatanging kumbinasyon mula sa resultang talahanayan.

Konklusyon

Inaasahan namin na nakatulong sa iyo ang tutorial na ito. Sa post na ito, natuklasan mo kung paano pagsamahin ang natatanging sugnay, ang concat() function, at ang count clause upang matukoy ang mga natatanging halaga mula sa maraming column ng SQL table.