SQL SELECT DISTINCT tagab, et and­me­pä­ringu tu­le­mus­tesse lisatakse ainult uni­kaal­sed kirjed ja read. See eemaldab kõ­ne­alus­test kirjetest ja ridadest dub­lee­ri­tud andmed, või­mal­da­des selgemat ja täpsemat andmete analüüsi.

Mis on SQL SELECT DISTINCT?

SQL SELECT DISTINCT on tööt­lusope­raa­tor, mida ka­su­ta­takse koos SQL-käskuga SELECT. Pä­rin­gu­tes valib SELECT ühe või mitu veergu ja kirjet. Koos ope­raa­toriga DISTINCT tagab see, et päringu tulemused si­sal­da­vad ainult uni­kaal­seid ridu ning eemaldab dub­lee­ri­tud read ja väärtused. Saate kom­bi­nee­rida SELECT DISTINCT teiste SQL-ope­raa­to­rite ja SQL-käskudega, et kohandada päringuid vastavalt oma in­di­vi­duaal­se­tele va­ja­dus­tele.

Mis vahe on SQL SELECT DISTINCT ja SELECT UNIQUE vahel?

Sõnad „unique“ ja „distinct“ on tä­hen­du­s­elt sarnased, kuid SQL-ope­raa­to­rid UNIQUE ja DISTINCT täidavad erinevaid üles­an­deid. Et kasutada SQL-i SELECT DISTINCT õigesti, peaksite teadma, kuidas see erineb UNIQUE.

SQL SELECT DISTINCT SQL SELECT UNIQUE
Kont­rol­lib and­me­ko­gusid dub­lee­ri­tud ridade ja väärtuste suhtes; eemaldab dub­lee­ri­tud andmed ja tagastab ainult erinevad tulemused Sobib dub­lee­ri­tud andmete si­ses­ta­mise väl­ti­miseks valitud tabelites ja veergudes, kasutades vee­ru­piiran­guid
Ka­su­ta­takse peamiselt and­me­ko­gu­mite hin­da­miseks, ana­lüü­si­miseks ja võrd­le­miseks, et saada selgeid ja sisukaid tulemusi Ka­su­ta­takse tabelite loomisel ja re­di­gee­ri­misel, et tagada parem andmete ter­vik­lik­kus ilma dub­lee­ri­mis­teta
Tip

Soovid oma SQL-teadmisi kiiresti värs­ken­dada? Meie näidetega il­lust­ree­ri­tud SQL-sis­se­ju­ha­tus tutvustab kõige olu­li­se­maid funkt­sioone.

Milline on SQL SELECT DISTINCT süntaks?

SQL SELECT DISTINCT põ­hisün­taks on järgmine:

SELECT  DISTINCT  ColumnA, ColumnB, …
FROM table
sql

See kasutab järgmisi pa­ra­meetreid:

  • SELECT DISTINCT: Siin mää­ra­takse, milliste veergude suhtes soo­vi­takse kasutada käsku SELECT ja ope­raa­to­rit DISTINCT.
  • FROM: Määrake siin, millises tabelis need veerud asuvad.
  • WHERE: Va­li­ku­li­ses WHERE-lauses saate lisada täien­da­vaid tingimusi, et oma päringut kit­sen­dada.

Milleks ka­su­ta­takse SQL SELECT DISTINCT?

SELECT DISTINCT-l on lugematu hulk ka­su­tus­või­ma­lusi. Siin on vaid mõned näited:

  • Koondage mitmes reas esinevad kliendi-, tellimuse-, patsiendi- või too­te­and­med üheks uni­kaal­seks kandeks
  • Arvutage ja kuvage ostude arv tel­li­muste ja toote ID-de põhjal
  • Koguge uni­kaal­sed patsiendi- või klien­di­and­med
  • Kuva kõik piirkonna tarne- või tarnijate aadressid

Näited SQL-ist SELECT DISTINCT

Vaadame nüüd kahte näidet, milles ka­su­ta­takse SELECT DISTINCT.

Kuva kõik kliendid

Oletame, et soovid tabelist „Orders” välja tuua kõik uni­kaal­sed kliendid. Sa ei soovi, et tabelis oleks dub­lee­ri­tud ridu, kui klient on teinud mitu tellimust. Selleks sobiv süntaks näeks välja järgmine:

SELECT  DISTINCT  Customer_name
FROM  Orders
sql

Teatud piirkonna klientide filt­ree­ri­mine

Klausli WHERE abil saate lisada klien­di­and­mete ana­lüü­sile täien­da­vaid tingimusi. Oletame, et soovite tabelist „Orders” välja otsida kõikide Ühend­ku­ning­rii­gis asuvate klientide nimed. See näeks välja järg­mi­selt:

SELECT  DISTINCT  Customer_name, Country
FROM  Orders
WHERE  Country  =  'UK'
sql

Kas SQL SELECT DISTINCT-le on al­ter­na­tiive?

SELECT DISTINCT on prak­ti­line viis dub­lee­ri­tud andmete eemal­da­miseks pä­rin­gu­test, kuid see ei ole alati parim lahendus. Suurtes and­me­ko­gu­mi­tes kasutades kulutab see palju ressursse, kuna võrdleb iga veergu eraldi. Sellisel juhul võid kaaluda järgmisi sarnaste funkt­sioo­ni­dega al­ter­na­tiive:

  • GROUP BY: SQL-i GROUP BY-laused rüh­mi­ta­vad kokku määratud veergude kirjed. Neid saab täpsemaks muuta täien­da­vate funkt­sioo­nide ja ope­raa­to­rite abil.
  • EXISTS: SQL EXISTS kont­rol­lib, kas väärtused ja kirjed on olemas teises tabelis.
  • COUNT: Kom­bi­nee­rige DISTINCT SQL-i COUNT-iga, et loendada veerus olevaid uni­kaal­seid väärtusi.
  • SELECT + FROM + WHERE: Saate tulemusi paremini kit­sen­dada alam­kü­si­mu­sega (ühe küsimuse sisse pe­sas­ta­tud teine küsimus). Alam­kü­si­mu­ses valige veerg SELECT abil, määrake FROM abil, millises tabelis töötate, ja seadke seejärel WHERE abil tin­gi­mu­sed, millele tulemused peavad vastama.
Go to Main Menu