SQL Distinct-klausul

SQL Distinct-klausul

SQL DISTINCT-udtrykket bruges til at fjerne duplikerede værdier fra forespørgselsresultater. Det sikrer, at output kun viser unikke poster for de(n) specificerede kolonne(r).

Eksempel: Først vil vi skabe en demo SQL-database og -tabel, hvor vi vil bruge kommandoen Distinct Clause.

Medarbejdere

Forespørgsel:

 SELECT DISTINCT Department   
FROM Employees;

Produktion:

distinkt

Syntaks:

 SELECT DISTINCT column1 column2    
FROM table_name
  • kolonne 1 kolonne 2: Navne på felterne i tabellen.
  • Tabel_navn: Tabel, hvorfra vi ønsker at hente posterne.

Note: Hvis det bruges på flere kolonner DISTINCT returnerer unikke kombinationer af værdier på tværs af disse kolonner.

Eksempler på DISTINCT i SQL

Lad os oprette en prøvetabel og udfylde den med nogle duplikerede poster. Vi vil se nogle eksempler på brug af DISTINCT-søgeordet med et eksempel på elevtabel.

elevtabel

Eksempel 1: Hent unikke navne fra feltet NAVN.

Forespørgslen returnerer kun unikke navne, hvilket eliminerer de duplikerede poster fra tabellen.

Forespørgsel:

 SELECT DISTINCT NAME FROM students;   

Produktion:

Forespørgsel-1

Eksempel 2: Hentning af unikke kombinationer af flere kolonner

Denne forespørgsel henter forskellige kombinationer af NAVN og ALDER - hvis to rækker har samme navn og alder, vil kun én af dem blive vist i resultatsættet.

Forespørgsel:

 SELECT DISTINCT NAME AGE FROM students;  

Produktion:

forespørgsel-2

Eksempel 3: Brug af DISTINCT med ORDER BY-klausulen

Vi kan kombinere søgeordet DISTINCT med BESTIL EFTER klausul for at filtrere unikke værdier, mens resultatsættet sorteres. Denne forespørgsel henter de unikke aldre fra elevtabellen og sorterer dem i stigende rækkefølge.

Forespørgsel:

 SELECT DISTINCT AGE FROM students ORDER BY AGE;   

Produktion:

beskriv efter alder

Eksempel 4: Brug af DISTINCT med aggregerede funktioner (f.eks. COUNT())

Her vil vi tjekke TÆLLE() funktion med en DISTINCT-sætning, som vil give det samlede antal elever ved at bruge COUNT()-funktionen.

Forespørgsel:

 SELECT COUNT(DISTINCT ROLL_NO) FROM Students ;  

Produktion:

distinkt

Eksempel 5: DISTINCT med NULL-værdier

I SQL behandler nøgleordet DISTINCT NULL som en unik værdi. NULL behandles som en særskilt værdi, så den vises kun én gang, hvis der er flere NULL'er.

Forespørgsel:

 INSERT INTO students (ROLL_NO NAME ADDRESS PHONE AGE)   
VALUES (13 'John Doe' '123 Unknown Street' '9876543216' NULL);

SELECT DISTINCT AGE FROM students;

Produktion:

alder-24 Opret quiz