SQL SELECT DISTINCT sikrer, at kun unikke poster og rækker medtages i re­sul­ta­ter­ne af en da­ta­fo­re­spørgsel. Det fjerner dubletter fra de på­gæl­den­de poster og rækker, hvilket muliggør en klarere og mere præcis da­ta­a­na­ly­se.

Hvad er SQL SELECT DISTINCT?

SQL SELECT DISTINCT er en be­hand­lings­o­pe­ra­tor, der bruges sammen med SQL SELECT-kom­man­do­en. I fo­re­spørgs­ler udvælger SELECT en eller flere kolonner og poster. Når den kom­bi­ne­res med DISTINCT, sikrer den, at re­sul­ta­ter­ne af din fo­re­spørgsel kun in­de­hol­der unikke rækker, og fjerner dublerede rækker og værdier. Du kan kombinere SELECT DISTINCT med andre SQL-ope­ra­to­rer og SQL-kom­man­do­er for at tilpasse dine fo­re­spørgs­ler efter dine in­di­vi­du­el­le behov.

Hvad er for­skel­len mellem SQL SELECT DISTINCT og SELECT UNIQUE?

Ordene »unik« og »distinkt« har samme betydning, men SQL-ope­ra­to­rer­ne UNIQUE og DISTINCT har for­skel­li­ge formål. For at bruge SQL SELECT DISTINCT korrekt bør du være opmærksom på, hvordan den adskiller sig fra UNIQUE.

SQL SELECT DISTINCT SQL SELECT UNIQUE
Kon­trol­le­rer datasæt for dublerede rækker og værdier; fjerner redundans og re­tur­ne­rer kun unikke re­sul­ta­ter Velegnet til at forhindre ind­tast­ning af dubletter i udvalgte tabeller og kolonner ved hjælp af ko­lon­ne­be­græns­nin­ger
Bruges primært til at evaluere, analysere og sam­men­lig­ne datasæt for at opnå klare, me­nings­ful­de re­sul­ta­ter Anvendes ved op­ret­tel­se og re­di­ge­ring af tabeller for at sikre bedre da­ta­in­te­gri­tet uden redundans
Tip

Har du brug for en hurtig op­frisk­ning af dine SQL-kund­ska­ber? Vores in­tro­duk­tion til SQL med eksempler gennemgår de vigtigste funk­tio­ner.

Hvordan ser syntaksen i SQL SELECT DISTINCT ud?

Den grund­læg­gen­de syntaks for SQL SELECT DISTINCT ser således ud:

SELECT  DISTINCT  ColumnA, ColumnB, …
FROM table
sql

Den bruger følgende parametre:

  • SELECT DISTINCT: Her angiver du, hvilke kolonner du vil anvende kom­man­do­en SELECT og ope­ra­to­ren DISTINCT på.
  • FROM: Angiv her, hvilken tabel der in­de­hol­der disse kolonner.
  • WHERE: I en valgfri WHERE-klausul kan du tilføje yder­li­ge­re be­tin­gel­ser for at indsnævre din fo­re­spørgsel.

Hvad bruges SQL SELECT DISTINCT til?

Der findes utallige an­ven­del­ses­mu­lig­he­der for SQL SELECT DISTINCT. Her er blot et par eksempler:

  • Saml kunde-, ordre-, patient- eller pro­duk­t­da­ta, der fo­re­kom­mer i flere rækker, til én enkelt post
  • Tæl og vis antallet af køb baseret på ordrer og produkt-ID’er
  • Hent unikke patient- eller kundedata
  • Vis alle le­ve­rings­adres­ser eller le­ve­ran­dø­rer i en region

Eksempler på SQL SELECT DISTINCT

Vi skal nu se på to eksempler, hvor SELECT DISTINCT indgår.

Hent alle kunder

Lad os sige, at du vil hente alle unikke kunder fra en tabel ved navn »Orders«. Du ønsker ikke at få med nogen dubletter, hvis en kunde har afgivet flere ordrer. Syntaksen til dette vil se således ud:

SELECT  DISTINCT  Customer_name
FROM  Orders
sql

Fil­tre­ring af kunder fra en bestemt region

Du kan bruge en WHERE til at tilføje yder­li­ge­re be­tin­gel­ser til din eva­lu­e­ring af kundedata. Lad os sige, at du vil hente navnene på alle kunder i Stor­bri­tan­ni­en fra en tabel ved navn »Orders«. Sådan ser det ud:

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

Findes der al­ter­na­ti­ver til SQL SELECT DISTINCT?

SELECT DISTINCT er en praktisk metode til at fjerne dubletter fra dine fo­re­spørgs­ler, men det er ikke altid den bedste løsning. Når den anvendes på store datasæt, bruger den mange res­sour­cer på at sam­men­lig­ne hver enkelt kolonne. I så fald kan du overveje disse al­ter­na­ti­ver med lignende funk­tio­ner:

  • GROUP BY: SQL GROUP BY-sætninger grupperer poster fra de kolonner, du angiver. Du kan gøre dem mere præcise ved hjælp af yder­li­ge­re funk­tio­ner og ope­ra­to­rer.
  • EXISTS: SQL EXISTS kon­trol­le­rer, om værdier og poster findes i en anden tabel.
  • COUNT: Kombiner DISTINCT med SQL COUNT for at tælle de unikke værdier i en kolonne.
  • SELECT + FROM + WHERE: Du kan indsnævre dine re­sul­ta­ter bedre med en un­der­fo­re­spørgsel (en fo­re­spørgsel indlejret i en anden fo­re­spørgsel). I un­der­fo­re­spørgs­len skal du vælge kolonnen ved hjælp af SELECT, angive hvilken tabel du arbejder i med FROM og derefter indstille de be­tin­gel­ser, som re­sul­ta­ter­ne skal opfylde, med WHERE.
Gå til ho­ved­me­nu­en