SQL SELECT DISTINCT varmistaa, että tie­to­ky­se­lyn tuloksiin sisältyy vain yk­si­löl­li­siä tietueita ja rivejä. Se poistaa ky­sei­sis­tä tie­tueis­ta ja riveistä kak­sois­kap­pa­leet, mikä mah­dol­lis­taa sel­keäm­män ja tarkemman tietojen ana­ly­soin­nin.

Mikä on SQL SELECT DISTINCT?

SQL SELECT DISTINCT on kä­sit­te­ly­ope­raat­to­ri, jota käytetään yhdessä SQL SELECT -komennon kanssa. Ky­se­lyis­sä SELECT valitsee yhden tai useamman sarakkeen ja tietueen. Yh­dis­tet­ty­nä DISTINCT se varmistaa, että kyselyn tulokset si­säl­tä­vät vain yk­si­löl­li­siä rivejä, ja poistaa pääl­lek­käi­set rivit ja arvot. Voit yhdistää SELECT DISTINCT muihin SQL-ope­raat­to­rei­hin ja SQL-ko­men­toi­hin muo­ka­tak­se­si ky­se­ly­jä­si omien tar­pei­de­si mukaan.

Mitä eroa on SQL SELECT DISTINCT:llä ja SELECT UNIQUEllä?

Sanoilla ”unique” ja ”distinct” on sa­man­kal­tai­nen merkitys, mutta SQL-ope­raat­to­rit UNIQUE ja DISTINCT pal­ve­le­vat eri tar­koi­tuk­sia. Jotta voisit käyttää SQL SELECT DISTINCT oikein, sinun on tie­det­tä­vä, miten se eroaa UNIQUEstä.

SQL SELECT DISTINCT SQL SELECT UNIQUE
Tarkistaa tie­to­jou­kot pääl­lek­käis­ten rivien ja arvojen varalta; poistaa pääl­lek­käi­syy­det ja palauttaa vain yk­si­löl­li­set tulokset Sopii estämään pääl­lek­käi­syyk­sien syn­ty­mis­tä va­li­tuis­sa tau­lu­kois­sa ja sa­rak­keis­sa sarakkeen ra­joi­tus­ten avulla
Käytetään pää­asias­sa tie­to­jouk­ko­jen ar­vioin­tiin, ana­ly­soin­tiin ja ver­tai­luun selkeiden, mer­ki­tyk­sel­lis­ten tulosten saa­mi­sek­si Käytetään tau­lu­koi­den luo­mi­ses­sa ja muok­kaa­mi­ses­sa paremman tietojen eheyden var­mis­ta­mi­sek­si ilman pääl­lek­käi­syyk­siä
Vinkki

Haluatko kerrata SQL:n perusteet nopeasti? Esi­merk­ke­jä si­säl­tä­väs­sä SQL-esit­te­lys­säm­me esi­tel­lään tär­keim­mät toiminnot.

Mikä on SQL SELECT DISTINCT:n syntaksi?

SQL SELECT DISTINCT:n pe­rus­ra­ken­teet ovat seuraavat:

SELECT  DISTINCT  ColumnA, ColumnB, …
FROM table
sql

Siinä käytetään seuraavia pa­ra­met­re­ja:

  • SELECT DISTINCT: Tässä mää­ri­te­tään, mihin sa­rak­kei­siin SELECT -komentoa ja DISTINCT -ope­raat­to­ria halutaan soveltaa.
  • FROM: Määritä tässä, missä tau­lu­kos­sa kyseiset sarakkeet si­jait­se­vat.
  • WHERE: Va­lin­nai­ses­sa WHERE-lauseessa voit lisätä li­säeh­to­ja kyselyn ra­jaa­mi­sek­si.

Mihin SQL SELECT DISTINCT käytetään?

SQL SELECT DISTINCT:lla on lu­ke­mat­to­mia käyt­tö­ta­pauk­sia. Tässä muutamia esi­merk­ke­jä:

  • Yhdistä useilla riveillä esiin­ty­vät asiakas-, tilaus-, potilas- tai tuo­te­tie­dot yhdeksi yk­si­löl­li­sek­si tie­tu­eek­si
  • Laske ja näytä ostojen määrä tilausten ja tuo­te­tun­nus­ten pe­rus­teel­la
  • Hae yk­si­löl­li­set potilas- tai asia­kas­tie­dot
  • Näytä kaikki toi­mi­tuso­soit­teet tai toi­mit­ta­jat tietyllä alueella

Esi­merk­ke­jä SQL SELECT DISTINCT:stä

Tar­kas­te­lem­me nyt kahta esi­merk­kiä, joissa käytetään SELECT DISTINCT.

Hae kaikki asiakkaat

Oletetaan, että haluat hakea kaikki yk­si­löl­li­set asiakkaat tau­lu­kos­ta nimeltä ”Orders”. Et halua, että tulokseen sisältyy pääl­lek­käi­siä rivejä, vaikka asiakas olisi tehnyt useita tilauksia. Syntaksi tälle näyttäisi seu­raa­val­ta:

SELECT  DISTINCT  Customer_name
FROM  Orders
sql

Tiettyä aluetta edus­ta­vien asiak­kai­den suo­dat­ta­mi­nen

Voit käyttää WHERE li­sä­täk­se­si li­säeh­to­ja asia­kas­tie­to­jen ar­vioin­tiin. Oletetaan, että haluat hakea kaikkien Isossa-Bri­tan­nias­sa asuvien asiak­kai­den nimet tau­lu­kos­ta nimeltä ”Orders”. Se näyttäisi tältä:

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

Onko SQL SELECT DISTINCT:lle vaih­toeh­to­ja?

SELECT DISTINCT on kätevä tapa poistaa kak­sois­kap­pa­leet ky­se­lyis­tä, mutta se ei aina ole paras ratkaisu. Suurissa tie­to­jou­kois­sa sen käyttö kuluttaa paljon re­surs­se­ja, koska se vertaa jokaista saraketta erikseen. Tällöin voit harkita seuraavia vaih­toeh­to­ja, joilla on sa­man­lai­sia toi­min­to­ja:

  • GROUP BY: SQL:n GROUP BY -lauseet ryh­mit­te­le­vät tietueet mää­rit­te­le­mie­si sa­rak­kei­den pe­rus­teel­la. Voit tarkentaa niitä li­sä­funk­tioi­den ja ope­raat­to­rei­den avulla.
  • EXISTS: SQL EXISTS tarkistaa, onko arvoja ja tietueita toisessa tau­lu­kos­sa.
  • COUNT: Yhdistä DISTINCT ja SQL COUNT las­keak­se­si sarakkeen yk­si­löl­li­set arvot.
  • SELECT + FROM + WHERE: Voit rajata tuloksia paremmin ali­ky­se­lyl­lä (toisen kyselyn sisään upo­te­tul­la kyselyllä). Valitse ali­ky­se­lys­sä sarake käyt­tä­mäl­lä SELECT, määritä kä­si­tel­tä­vä taulukko käyt­tä­mäl­lä FROM ja aseta sitten ehdot, jotka tulosten on täy­tet­tä­vä, käyt­tä­mäl­lä WHERE.
Siirry pää­va­lik­koon