DISTINKT i PostgreSQL: Velg, bestill etter og begrens (eksempler)

โšก Smart oppsummering

DISTINKT i PostgreSQL brukes med en SELECT-setning for รฅ fjerne dupliserte rader og returnere kun unike verdier. Den dekker SELECT-syntaksen, SQL-skallet og pgAdmin, DISTINCT pรฅ รฉn og flere kolonner, og DISTINCT versus GROUP BY.

  • ๐Ÿ”Ž ร… VELGE: Hent kolonner fra en tabell med SELECT-kolonne FROM-tabellen.
  • ๐Ÿงน DISTINKT: Fjern dupliserte rader og behold รฉn rad per unik verdi.
  • โ†•๏ธ REKKEFร˜LGE ETTER: Sorter stigende som standard, eller synkende med DESC.
  • ๐Ÿ”ข BEGRENSE: Begrens antall poster spรธrringen returnerer.
  • ๐Ÿ–ฅ๏ธ Verktรธy: Kjรธr de samme spรธrringene i SQL Shell eller pgAdmin.

DISTINKT i PostgreSQL

Du kan hente data fra tabellen ved รฅ bruke en SELECT-setning.

Syntaks:

SELECT [column names] FROM [table_name]

Her

  • kolonnenavn: Navnet pรฅ kolonnene hvis verdi du vil hente.
  • FRA: FROM-klausulen definerer รฉn eller flere kildetabeller for SELECT-klausulen.
  • tabellnavn: Navnet pรฅ en eksisterende tabell du vil spรธrre.

Hva er DISTINCT i PostgreSQL?

Ocuco DISTINCT klausul i PostgreSQL brukes med en SELECT-setning for รฅ fjerne dupliserte rader fra resultatsettet. Nรฅr en kolonne inneholder gjentatte verdier, returnerer SELECT DISTINCT bare de unike verdiene, keeping en enkelt rad for hver gruppe med duplikater. Dette er nyttig nรฅr du รธnsker en liste over distinkte oppfรธringer, for eksempel unike kundebyer eller produktkategorier, uten repetisjon.

DISTINCT evaluerer alle kolonnene som er oppfรธrt i SELECT-setningen for รฅ avgjรธre om en rad er unik. PostgreSQL tilbyr ogsรฅ DISTINCT ON, som returnerer den fรธrste raden for hver distinkte verdi i et spesifisert uttrykk. Du kan kombinere DISTINCT med ORDER BY for รฅ kontrollere hvilke rader som vises, og med LIMIT for รฅ begrense antallet resultater.

PostgreSQL Velg Statement i SQL Shell

Trinn 1) Vi har tabellen ยซtutorialsยป med to kolonner, ยซidยป og ยซtutorial_nameยป. La oss spรธrre den. Bruk fรธlgende spรธrring for รฅ liste opp data i tabellen:

SELECT id,tutorial_name FROM tutorials;

PostgreSQL Velg Statement i SQL Shell

NOTAT: Bruk kommandoen \c for รฅ koble til databasen som inneholder tabellen du vil spรธrre. I vรฅrt tilfelle er vi koblet til databasen guru99.

Trinn 2) Hvis du vil se alle kolonnene i en bestemt tabell, kan vi bruke jokertegnet asterisk (*). Dette betyr at den sjekker alle muligheter, og som et resultat returnerer den alle kolonner.

SELECT * FROM tutorials;

PostgreSQL Velg Statement i SQL Shell

Den viser alle postene i opplรฆringstabellen.

Trinn 3) Du kan bruke ORDER-leddet til รฅ sortere data i en tabell basert pรฅ en bestemt kolonne. ORDER-klausulen organiserer data i A til ร…-rekkefรธlge.

SELECT * FROM tutorials ORDER BY id;

PostgreSQL Velg Statement i SQL Shell

Du kan sortere fra Z til A ved รฅ bruke "DESC" etter "ORDER BY"-setningen.

SELECT * FROM tutorials ORDER BY id DESC;

PostgreSQL Velg Statement i SQL Shell

Trinn 4) SELECT DISTINCT i PostgreSQL klausul kan brukes til รฅ fjerne dupliserte rader fra resultatet. Den beholder รฉn rad for hver gruppe med duplikater.

Syntax:
SELECT DISTINCT column_1 FROM table_name;

La oss spรธrre Postgres Select Distinct ID-verdier fra tabellveiledningene vรฅre ved รฅ bruke distinkte spรธrringer i PostgreSQL:

SELECT DISTINCT(id) FROM tutorials;

PostgreSQL Velg Statement i SQL Shell

Trinn 5) Du kan ogsรฅ bruke det PostgreSQL LIMIT-klausul for รฅ begrense antall poster som returneres av SELECT-spรธrringen.

SELECT * FROM tutorials LIMIT 4;

PostgreSQL Velg Statement i SQL Shell

PostgreSQL Velg uttalelse i pgAdmin

Trinn 1) I objekttreet:

  1. Hรธyreklikk pรฅ tabellen.
  2. Velg Skript.
  3. Klikk pรฅ VELG SKRIPT.

PostgreSQL Velg uttalelse i pgAdmin

Trinn 2) I panelet til hรธyre:

  1. Rediger SELECT-spรธrringen om nรธdvendig.
  2. Klikk pรฅ Lyn-ikonet.
  3. Observer utgangen.

PostgreSQL Velg uttalelse i pgAdmin

DISTINCT pรฅ flere kolonner

SELECT DISTINCT-klausulen kan ogsรฅ gjelde for mer enn รฉn kolonne. Nรฅr du viser flere kolonner etter DISTINCT, PostgreSQL behandler kombinasjonen av disse kolonnene som en enhet og fjerner rader der hele kombinasjonen er duplisert.

Syntax:
SELECT DISTINCT column_1, column_2 FROM table_name;

For eksempel, for รฅ returnere de unike kombinasjonene av tutorial_name og id fra tutorials-tabellen:

SELECT DISTINCT tutorial_name, id FROM tutorials;

I dette tilfellet fjernes en rad bare nรฅr bรฅde tutorial_name og id samsvarer med en annen rad. Hvis to rader deler samme tutorial_name, men har forskjellige id-verdier, beholdes begge, fordi kombinasjonen fortsatt er unik. Denne oppfรธrselen er viktig รฅ huske: DISTINCT deduplikerer ikke en enkelt kolonne nรฅr flere kolonner er valgt; den deduplikerer hele settet med valgte kolonner sammen.

DISTINCT vs. GROUP BY i PostgreSQL

Bรฅde DISTINCT og GROUP BY kan fjerne dupliserte verdier, men de tjener forskjellige formรฅl:

  • DISTINCT returnerer ganske enkelt unike rader fra resultatet og er best nรฅr du bare trenger en deduplisert liste.
  • GRUPPE AV grupperer rader som deler en verdi, slik at du kan bruke aggregeringsfunksjoner som ANTAL, SUM eller AVG til hver gruppe.

For eksempel returnerer begge de to spรธrringene nedenfor de unike ID-verdiene:

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

Bruk DISTINCT for en enkel liste over unike verdier, og bruk GROUP BY nรฅr du ogsรฅ trenger en beregning per gruppe, for eksempel รฅ telle hvor mange veiledninger som deler hver ID. Pรฅ enkle spรธrringer produserer planleggeren ofte lignende ytelse for begge, men GROUP BY er nรธdvendig nรฅr aggregering er involvert.

Cheat Sheet

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

Her er de ulike parameterne:

  • kolonnenavn: Navnet pรฅ kolonnene hvis verdi du vil hente.
  • FRA: FROM-klausulen definerer รฉn eller flere kildetabeller for SELECT-klausulen.
  • tabellnavn: Navnet pรฅ en eksisterende tabell du vil spรธrre.

Ulike klausuler er:

Kommandoer Tekniske beskrivelser
* Henter poster for alle radene i tabellen.
DISTINCT DISTINKT i PostgreSQL hjelper deg med รฅ fjerne duplikater fra resultatet.
REKKEFร˜LGE ETTER Sorterer rader basert pรฅ en kolonne. Standard sorteringsrekkefรธlge er stigende. Bruk nรธkkelordet DESC for รฅ sortere i synkende rekkefรธlge.
BEGRENSE LIMIT i PostgreSQL begrenser antall poster som returneres av spรธrringen.

Spรธrsmรฅl og svar

Ja. AI-assistenter kan gjรธre en beskrivelse om til SELECT DISTINCT-setninger, legge til ORDER BY eller LIMIT, og forklare resultatet. Du bรธr fortsatt teste spรธrringen pรฅ skjemaet ditt fรธr du kjรธrer det i produksjon.

Ja. AI-verktรธy kan lese spรธrreplanen fra EXPLAIN ANALYZE og foreslรฅ indekser eller omskrive DISTINCT som GROUP BY. Valider alltid forslag med reelle data, siden ytelsen avhenger av tabellstรธrrelse og indekser.

DISTINCT fjerner dupliserte rader pรฅ tvers av alle valgte kolonner. DISTINCT ON (uttrykk) beholder den fรธrste raden for hver distinkte verdi i det uttrykket, slik at du kan velge รฉn rad per gruppe, vanligvis kombinert med ORDER BY.

DISTINCT kan vรฆre tregere pรฅ store tabeller fordi den mรฅ sammenligne og fjerne duplikater, ofte ved hjelp av sortering eller hash. Riktige indekser og begrensning av kolonnene du velger bidrar til รฅ redusere kostnadene.

Oppsummer dette innlegget med: