SKÄRNA i PostgreSQL: Välj, beställ efter och begränsa (exempel)

⚡ Smart sammanfattning

SKÄRNA i PostgreSQL används med ett SELECT-uttryck för att ta bort dubbletter av rader och endast returnera unika värden. Det täcker SELECT-syntaxen, SQL Shell och pgAdmin, DISTINCT på enstaka och flera kolumner, och DISTINCT kontra GROUP BY.

  • 🔎 VÄLJ: Hämta kolumner från en tabell med SELECT-kolumnen FROM-tabellen.
  • 🧹 DISTINKT: Ta bort dubbletter av rader och behåll en rad per unikt värde.
  • ↕️ SORTERA EFTER: Sortera stigande som standard, eller fallande med DESC.
  • 🔢 BEGRÄNSA: Begränsa antalet poster som frågan returnerar.
  • 🖥️ Verktyg: Kör samma frågor i SQL Shell eller pgAdmin.

SKÄRNA i PostgreSQL

Du kan hämta data från tabellen med hjälp av en SELECT-sats.

Syntax:

SELECT [column names] FROM [table_name]

Här,

  • kolumnnamn: Namn på de kolumner vars värde du vill hämta.
  • FRÅN: FROM-klausulen definierar en eller flera källtabeller för SELECT.
  • tabellnamn: Namnet på en befintlig tabell som du vill fråga.

Vad är DISTINCT i PostgreSQL?

Ocuco-landskapet TYDLIG klausul i PostgreSQL används med ett SELECT-uttryck för att ta bort dubbletter av rader från resultatmängden. När en kolumn innehåller upprepade värden returnerar SELECT DISTINCT endast de unika värdena, hållping en enda rad för varje grupp av dubbletter. Detta är användbart när du vill ha en lista med distinkta poster, till exempel unika kundstäder eller produktkategorier, utan upprepningar.

DISTINCT utvärderar alla kolumner som listas i SELECT-satsen för att avgöra om en rad är unik. PostgreSQL tillhandahåller även DISTINCT ON, som returnerar den första raden för varje distinkt värde i ett angivet uttryck. Du kan kombinera DISTINCT med ORDER BY för att kontrollera vilka rader som visas och med LIMIT för att begränsa antalet resultat.

PostgreSQL Välj Statement i SQL Shell

Steg 1) Vi har en tabell med texten "tutorials" med två kolumner, "id" och "tutorial_name". Låt oss fråga den. Använd följande fråga för att lista data i tabellen:

SELECT id,tutorial_name FROM tutorials;

PostgreSQL Välj Statement i SQL Shell

OBS: Använd kommandot \c för att ansluta till databasen som innehåller tabellen du vill fråga. I vårt fall är vi anslutna till databasen guru99.

Steg 2) Om du vill visa alla kolumner i en viss tabell kan vi använda jokertecknet asterisk (*). Det betyder att alla möjligheter kontrolleras och att varje kolumn returneras.

SELECT * FROM tutorials;

PostgreSQL Välj Statement i SQL Shell

Den visar alla poster i handledningstabellen.

Steg 3) Du kan använda ORDER-satsen för att sortera data i en tabell baserat på en viss kolumn. ORDER-satsen organiserar data i A till Ö-ordning.

SELECT * FROM tutorials ORDER BY id;

PostgreSQL Välj Statement i SQL Shell

Du kan sortera från Z till A med "DESC" efter "ORDER BY"-satsen.

SELECT * FROM tutorials ORDER BY id DESC;

PostgreSQL Välj Statement i SQL Shell

Steg 4) SELECT DISTINCT i PostgreSQL klausul kan användas för att ta bort dubbletter av rader från resultatet. Den behåller en rad för varje grupp av dubbletter.

Syntax:
SELECT DISTINCT column_1 FROM table_name;

Låt oss fråga Postgres Select Distinct id-värden från våra tabellhandledningar med hjälp av distinkta frågor i PostgreSQL:

SELECT DISTINCT(id) FROM tutorials;

PostgreSQL Välj Statement i SQL Shell

Steg 5) Du kan använda PostgreSQL LIMIT-klausul för att begränsa antalet poster som returneras av SELECT-frågan.

SELECT * FROM tutorials LIMIT 4;

PostgreSQL Välj Statement i SQL Shell

PostgreSQL Välj uttalande i pgAdmin

Steg 1) I objektträdet:

  1. Högerklicka på tabellen.
  2. Välj Skript.
  3. Klicka på VÄLJ SKRIPT.

PostgreSQL Välj uttalande i pgAdmin

Steg 2) I panelen till höger:

  1. Redigera SELECT-frågan om det behövs.
  2. Klicka på blixtikonen.
  3. Observera utgången.

PostgreSQL Välj uttalande i pgAdmin

DISTINCT på flera kolumner

SELECT DISTINCT-satsen kan också gälla för mer än en kolumn. När du listar flera kolumner efter DISTINCT, PostgreSQL behandlar kombinationen av dessa kolumner som en enhet och tar bort rader där hela kombinationen är duplicerad.

Syntax:
SELECT DISTINCT column_1, column_2 FROM table_name;

Till exempel, för att returnera de unika kombinationerna av tutorial_name och id från tutorials-tabellen:

SELECT DISTINCT tutorial_name, id FROM tutorials;

I det här fallet tas en rad endast bort när både tutorial_name och id matchar en annan rad. Om två rader delar samma tutorial_name men har olika id-värden behålls båda, eftersom kombinationen fortfarande är unik. Det här beteendet är viktigt att komma ihåg: DISTINCT avduplicerar inte en enskild kolumn när flera kolumner är valda; den avduplicerar hela uppsättningen valda kolumner tillsammans.

DISTINCT kontra GROUP BY i PostgreSQL

Både DISTINCT och GROUP BY kan ta bort dubbletter, men de tjänar olika syften:

  • TYDLIG returnerar helt enkelt unika rader från resultatet och är bäst när du bara behöver en deduplicerad lista.
  • GRUPP AV grupperar rader som delar ett värde så att du kan använda aggregeringsfunktioner som ANTAL, SUMMA eller AVG till varje grupp.

Till exempel returnerar de två frågorna nedan båda de unika id-värdena:

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

Använd DISTINCT för en enkel lista med unika värden, och använd GROUP BY när du också behöver en beräkning per grupp, till exempel att räkna hur många handledningar som delar varje id. Vid enkla frågor producerar planeraren ofta liknande prestanda för båda, men GROUP BY krävs när aggregering är inblandat.

Fusklapp

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

Här är de olika parametrarna:

  • kolumnnamn: Namn på de kolumner vars värde du vill hämta.
  • FRÅN: FROM-klausulen definierar en eller flera källtabeller för SELECT.
  • tabellnamn: Namnet på en befintlig tabell som du vill fråga.

Olika klausuler är:

Kommandon BESKRIVNING
* Hämtar poster för alla rader i tabellen.
TYDLIG SKÄRNA i PostgreSQL hjälper dig att ta bort dubbletter från resultatet.
SORTERA EFTER Sorterar rader baserat på en kolumn. Standard sorteringsordning är stigande. Använd nyckelordet DESC för att sortera i fallande ordning.
BEGRÄNSA LIMIT i PostgreSQL begränsar antalet poster som returneras av frågan.

Vanliga frågor

Ja. AI-assistenter kan omvandla en beskrivning till SELECT DISTINCT-satser, lägga till ORDER BY eller LIMIT och förklara resultatet. Du bör fortfarande testa frågan på ditt schema innan du kör den i produktion.

Ja. AI-verktyg kan läsa frågeplanen från EXPLAIN ANALYZE och föreslå index eller omskrivning av DISTINCT som GROUP BY. Validera alltid förslag med verkliga data, eftersom prestanda beror på tabellstorlek och index.

DISTINCT tar bort dubbletter av rader i alla markerade kolumner. DISTINCT ON (uttryck) behåller den första raden för varje distinkt värde i uttrycket, vilket låter dig välja en rad per grupp, vanligtvis i kombination med ORDER BY.

DISTINCT kan vara långsammare i stora tabeller eftersom det måste jämföra och ta bort dubbletter, ofta med hjälp av sortering eller hash. Korrekta index och begränsning av antalet kolumner du väljer hjälper till att minska kostnaden.

Sammanfatta detta inlägg med: