DISTINCT în PostgreSQL: Selectați, Comandați după și Limitați (Exemple)
⚡ Rezumat inteligent
DISTINCT în PostgreSQL se utilizează cu o instrucțiune SELECT pentru a elimina rândurile duplicate și a returna doar valori unice. Acoperă sintaxa SELECT, SQL Shell și pgAdmin, DISTINCT pe coloane simple și multiple și DISTINCT versus GROUP BY.

Puteți prelua date din tabel folosind o instrucțiune SELECT.
Sintaxă:
SELECT [column names] FROM [table_name]
Aici,
- nume de coloane: Numele coloanelor a căror valoare doriți să o recuperați.
- DIN: Clauza FROM definește unul sau mai multe tabele sursă pentru SELECT.
- table_name: Numele unui tabel existent pe care doriți să îl interogați.
Ce înseamnă DISTINCT în PostgreSQL?
DISTINCT clauza in PostgreSQL se utilizează cu o instrucțiune SELECT pentru a elimina rândurile duplicate din setul de rezultate. Când o coloană conține valori repetate, SELECT DISTINCT returnează doar valorile unice, păstrațiping un singur rând pentru fiecare grup de duplicate. Acest lucru este util atunci când doriți o listă de intrări distincte, cum ar fi orașe cu clienți unici sau categorii de produse, fără repetiții.
DISTINCT evaluează toate coloanele listate în instrucțiunea SELECT pentru a decide dacă un rând este unic. PostgreSQL De asemenea, oferă DISTINCT ON, care returnează primul rând pentru fiecare valoare distinctă a unei expresii specificate. Puteți combina DISTINCT cu ORDER BY pentru a controla ce rânduri apar și cu LIMIT pentru a limita numărul de rezultate.
PostgreSQL Selectați Declarație în SQL Shell
Pas 1) Avem un tabel „tutoriale” cu 2 coloane, „id” și „nume_tutorial”. Să îl interogăm. Folosim următoarea interogare pentru a lista datele din tabel:
SELECT id,tutorial_name FROM tutorials;
NOTĂ: Folosește comanda \c pentru a te conecta la baza de date care conține tabelul pe care dorești să îl interoghezi. În cazul nostru, suntem conectați la baza de date guru99.
Pas 2) Dacă doriți să vizualizați toate coloanele dintr-un anumit tabel, putem folosi caracterul wildcard asterisc (*). Aceasta înseamnă că verifică fiecare posibilitate și, prin urmare, va returna fiecare coloană.
SELECT * FROM tutorials;
Afișează toate înregistrările din tabelul de tutoriale.
Pas 3) Puteți folosi clauza ORDER pentru a sorta datele dintr-un tabel pe baza unei anumite coloane. Clauza ORDER organizează datele în ordinea de la A la Z.
SELECT * FROM tutorials ORDER BY id;
Puteți sorta de la Z la A folosind „DESC” după instrucțiunea „ORDER BY”.
SELECT * FROM tutorials ORDER BY id DESC;
Pas 4) SELECT DISTINCT în PostgreSQL clauza poate fi folosită pentru a elimina rândurile duplicate din rezultat. Păstrează un rând pentru fiecare grup de duplicate.
Syntax: SELECT DISTINCT column_1 FROM table_name;
Să interogăm valorile Postgres Select Distinct id din tutorialele noastre de tabel folosind interogări distincte în PostgreSQL:
SELECT DISTINCT(id) FROM tutorials;
Pas 5) Aveți posibilitatea să utilizați PostgreSQL Clauza LIMIT pentru a restricționa numărul de înregistrări returnate de interogarea SELECT.
SELECT * FROM tutorials LIMIT 4;
PostgreSQL Instrucțiune Select în pgAdmin
Pas 1) În arborele de obiecte:
- Faceți clic dreapta pe Tabel.
- Selectați Scripturi.
- Faceți clic pe SELECTARE SCRIPT.
Pas 2) În panoul din dreapta:
- Editați interogarea SELECT dacă este necesar.
- Faceți clic pe pictograma Fulger.
- Observați rezultatul.
DISTINCT pe mai multe coloane
Clauza SELECT DISTINCT se poate aplica și la mai multe coloane. Când listați mai multe coloane după DISTINCT, PostgreSQL tratează combinația acelor coloane ca o unitate și elimină rândurile în care întreaga combinație este duplicată.
Syntax: SELECT DISTINCT column_1, column_2 FROM table_name;
De exemplu, pentru a returna combinațiile unice de tutorial_name și id din tabelul tutorials:
SELECT DISTINCT tutorial_name, id FROM tutorials;
În acest caz, un rând este eliminat numai atunci când atât tutorial_name, cât și id se potrivesc cu un alt rând. Dacă două rânduri au același tutorial_name, dar au valori id diferite, ambele sunt păstrate, deoarece combinația este în continuare unică. Este important de reținut acest comportament: DISTINCT nu deduplică o singură coloană atunci când sunt selectate mai multe coloane; deduplică întregul set de coloane selectate împreună.
DISTINCT vs. GROUP BY în PostgreSQL
Atât DISTINCT, cât și GROUP BY pot elimina valorile duplicate, dar au scopuri diferite:
- DISTINCT returnează pur și simplu rânduri unice din rezultat și este cea mai bună opțiune atunci când aveți nevoie doar de o listă deduplicată.
- A SE GRUPA CU grupează rândurile care au în comun o valoare, astfel încât să puteți aplica funcții agregate precum COUNT, SUM sau AVG fiecărui grup.
De exemplu, cele două interogări de mai jos returnează valorile unice de identificare:
SELECT DISTINCT id FROM tutorials; SELECT id FROM tutorials GROUP BY id;
Folosește DISTINCT pentru o listă simplă de valori unice și folosește GROUP BY atunci când ai nevoie și de un calcul per grup, cum ar fi numărarea câte tutoriale au în comun fiecare ID. În cazul interogărilor simple, planificatorul produce adesea performanțe similare pentru ambele, dar GROUP BY este necesar ori de câte ori este implicată agregarea.
Cheat Sheet
SELECT [column names] FROM [table_name] [clause]
Iată diverșii parametri:
- nume de coloane: Numele coloanelor a căror valoare doriți să o recuperați.
- DIN: Clauza FROM definește unul sau mai multe tabele sursă pentru SELECT.
- table_name: Numele unui tabel existent pe care doriți să îl interogați.
Diverse clauze sunt:
| Comenzi | Descriere |
|---|---|
| * | Preia înregistrări pentru toate rândurile din tabel. |
| DISTINCT | DISTINCT în PostgreSQL vă ajută să eliminați duplicatele din rezultat. |
| COMANDA DE | Sortează rândurile în funcție de o coloană. Ordinea de sortare implicită este crescătoare. Folosiți cuvântul cheie DESC pentru a sorta în ordine descrescătoare. |
| LIMITĂ | LIMITĂ în PostgreSQL restricționează numărul de înregistrări returnate de interogare. |








