SÆRLIGE i PostgreSQL: Vælg, bestil efter og begræns (eksempler)

⚡ Smart opsummering

SÆRLIGE i PostgreSQL bruges med en SELECT-sætning til at fjerne dubletter af rækker og kun returnere unikke værdier. Den dækker SELECT-syntaksen, SQL Shell og pgAdmin, DISTINCT på enkelte og flere kolonner, og DISTINCT versus GROUP BY.

  • 🔎 VÆLG: Hent kolonner fra en tabel med SELECT kolonne FROM tabellen.
  • 🧹 DISTINKT: Fjern dublerede rækker, og behold én række pr. unik værdi.
  • ↕️ BESTIL AF: Sorter stigende som standard, eller faldende med DESC.
  • 🔢 BEGRÆNSE: Begræns antallet af poster, som forespørgslen returnerer.
  • 🖥️ Værktøjer: Kør de samme forespørgsler i SQL Shell eller pgAdmin.

SÆRLIGE i PostgreSQL

Du kan hente data fra tabellen ved hjælp af en SELECT-sætning.

Syntaks:

SELECT [column names] FROM [table_name]

Her,

  • kolonnenavne: Navnet på de kolonner, hvis værdi du vil hente.
  • FRA: FROM-klausulen definerer en eller flere kildetabeller for SELECT.
  • tabelnavn: Navnet på en eksisterende tabel, som du vil forespørge på.

Hvad er DISTINCT i PostgreSQL?

DISTINCT klausul i PostgreSQL bruges sammen med en SELECT-sætning til at fjerne dubletter af rækker fra resultatsættet. Når en kolonne indeholder gentagne værdier, returnerer SELECT DISTINCT kun de unikke værdier, keeping en enkelt række for hver gruppe af dubletter. Dette er nyttigt, når du ønsker en liste over forskellige poster, f.eks. unikke kundebyer eller produktkategorier, uden gentagelser.

DISTINCT evaluerer alle kolonnerne i SELECT-sætningen for at afgøre, om en række er unik. PostgreSQL indeholder også DISTINCT ON, som returnerer den første række for hver distinkt værdi i et bestemt udtryk. Du kan kombinere DISTINCT med ORDER BY for at kontrollere, hvilke rækker der vises, og med LIMIT for at begrænse antallet af resultater.

PostgreSQL Vælg Statement i SQL Shell

Trin 1) Vi har en tabel med titlerne "tutorials" med 2 kolonner, "id" og "tutorial_name". Lad os forespørge på den. Brug følgende forespørgsel til at liste data i tabellen:

SELECT id,tutorial_name FROM tutorials;

PostgreSQL Vælg Statement i SQL Shell

BEMÆRK VENLIGST: Brug kommandoen \c til at oprette forbindelse til den database, der indeholder den tabel, du vil forespørge på. I vores tilfælde er vi forbundet til databasen guru99.

Trin 2) Hvis du vil se alle kolonnerne i en bestemt tabel, kan vi bruge jokertegnet asterisk (*). Det betyder, at alle muligheder kontrolleres, og som følge heraf returneres alle kolonner.

SELECT * FROM tutorials;

PostgreSQL Vælg Statement i SQL Shell

Den viser alle optegnelserne i selvstudietabellen.

Trin 3) Du kan bruge ORDER-udtrykket til at sortere data i en tabel baseret på en bestemt kolonne. ORDER-klausulen organiserer data i A til Z-rækkefølge.

SELECT * FROM tutorials ORDER BY id;

PostgreSQL Vælg Statement i SQL Shell

Du kan sortere fra Z til A ved at bruge "DESC" efter "ORDER BY"-sætningen.

SELECT * FROM tutorials ORDER BY id DESC;

PostgreSQL Vælg Statement i SQL Shell

Trin 4) SELECT DISTINCT i PostgreSQL klausul kan bruges til at fjerne duplikerede rækker fra resultatet. Den beholder en række for hver gruppe af dubletter.

Syntax:
SELECT DISTINCT column_1 FROM table_name;

Lad os forespørge Postgres Select Distinct id-værdier fra vores tabelvejledninger ved hjælp af distinct-forespørgsler i PostgreSQL:

SELECT DISTINCT(id) FROM tutorials;

PostgreSQL Vælg Statement i SQL Shell

Trin 5) Du kan bruge PostgreSQL LIMIT-klausul til at begrænse antallet af poster, der returneres af SELECT-forespørgslen.

SELECT * FROM tutorials LIMIT 4;

PostgreSQL Vælg Statement i SQL Shell

PostgreSQL Vælg erklæring i pgAdmin

Trin 1) I objekttræet:

  1. Højreklik på tabellen.
  2. Vælg Scripts.
  3. Klik på VÆLG SCRIPT.

PostgreSQL Vælg erklæring i pgAdmin

Trin 2) I panelet til højre:

  1. Rediger SELECT-forespørgslen, hvis det er nødvendigt.
  2. Klik på Lyn-ikonet.
  3. Observer outputtet.

PostgreSQL Vælg erklæring i pgAdmin

DISTINCT på flere kolonner

SELECT DISTINCT-klausulen kan også gælde for mere end én kolonne. Når du angiver flere kolonner efter DISTINCT, PostgreSQL behandler kombinationen af ​​disse kolonner som en enhed og fjerner rækker, hvor hele kombinationen er duplikeret.

Syntax:
SELECT DISTINCT column_1, column_2 FROM table_name;

For eksempel, for at returnere de unikke kombinationer af tutorial_name og id fra tutorials-tabellen:

SELECT DISTINCT tutorial_name, id FROM tutorials;

I dette tilfælde fjernes en række kun, når både tutorial_name og id matcher en anden række. Hvis to rækker deler det samme tutorial_name, men har forskellige id-værdier, bevares begge, fordi kombinationen stadig er unik. Denne funktion er vigtig at huske: DISTINCT deduplikerer ikke en enkelt kolonne, når flere kolonner er valgt; den deduplikerer hele sættet af valgte kolonner sammen.

DISTINCT vs. GROUP BY i PostgreSQL

Både DISTINCT og GROUP BY kan fjerne dubletter, men de tjener forskellige formål:

  • DISTINCT returnerer blot unikke rækker fra resultatet og er bedst, når du kun har brug for en deduplikeret liste.
  • GROUP BY grupperer rækker, der deler en værdi, så du kan anvende aggregeringsfunktioner som COUNT, SUM eller AVG til hver gruppe.

For eksempel returnerer de to forespørgsler nedenfor begge de unikke id-værdier:

SELECT DISTINCT id FROM tutorials;
SELECT id FROM tutorials GROUP BY id;

Brug DISTINCT til en overskuelig liste over unikke værdier, og brug GROUP BY, når du også har brug for en beregning pr. gruppe, f.eks. ved at tælle, hvor mange tutorials der deler hvert id. Ved simple forespørgsler producerer planlæggeren ofte lignende ydeevne for begge, men GROUP BY er påkrævet, når aggregering er involveret.

Cheat Sheet

SELECT [column names] FROM [table_name] [clause]

Her er de forskellige parametre:

  • kolonnenavne: Navnet på de kolonner, hvis værdi du vil hente.
  • FRA: FROM-klausulen definerer en eller flere kildetabeller for SELECT.
  • tabelnavn: Navnet på en eksisterende tabel, som du vil forespørge på.

Forskellige klausuler er:

Kommandoer Beskrivelse
* Henter poster for alle rækker i tabellen.
DISTINCT SÆRLIGE i PostgreSQL hjælper dig med at fjerne dubletter fra resultatet.
BESTIL BY Sorterer rækker baseret på en kolonne. Standard sorteringsrækkefølge er stigende. Brug nøgleordet DESC til at sortere i faldende rækkefølge.
GRÆNSE LIMIT i PostgreSQL begrænser antallet af poster, der returneres af forespørgslen.

Ofte Stillede Spørgsmål

Ja. AI-assistenter kan omdanne en beskrivelse til SELECT DISTINCT-sætninger, tilføje ORDER BY eller LIMIT og forklare resultatet. Du bør stadig teste forespørgslen på dit skema, før du kører det i produktion.

Ja. AI-værktøjer kan læse forespørgselsplanen fra EXPLAIN ANALYZE og foreslå indeks eller omskrive DISTINCT som GROUP BY. Valider altid forslag med reelle data, da ydeevnen afhænger af tabelstørrelse og indeks.

DISTINCT fjerner dubletter af rækker på tværs af alle valgte kolonner. DISTINCT ON (udtryk) beholder den første række for hver distinkt værdi i udtrykket, så du kan vælge én række pr. gruppe, normalt kombineret med ORDER BY.

DISTINCT kan være langsommere på store tabeller, fordi den skal sammenligne og fjerne dubletter, ofte ved hjælp af en sortering eller hash. Korrekte indekser og begrænsning af de kolonner, du vælger, hjælper med at reducere omkostningerne.

Opsummer dette indlæg med: