DISTINCT in PostgreSQL: Kiválasztás, rendelés és határérték (példák)
⚡ Okos összefoglaló
DISTINCT in PostgreSQL A SELECT utasítással együtt használatos a duplikált sorok eltávolítására és csak az egyedi értékek visszaadására. Lefedi a SELECT szintaxist, az SQL Shell-t és a pgAdmin-t, a DISTINCT függvényt egy- és többoszlopos esetekben, valamint a DISTINCT és a GROUP BY használatát.

A táblából SELECT utasítással lehet adatokat lekérni.
Syntax:
SELECT [column names] FROM [table_name]
Itt,
- oszlopnevek: Azon oszlopok neve, amelyek értékét le szeretné kérni.
- TÓL TŐL: A FROM záradék egy vagy több forrástáblát definiál a SELECT számára.
- táblázat_neve: Egy meglévő tábla neve, amelyet lekérdezni szeretne.
Mi a DISTINCT a következőben: PostgreSQL?
Az KÜLÖNBÖZŐ záradék PostgreSQL A SELECT utasítással együtt használható az eredményhalmazból ismétlődő sorok eltávolítására. Ha egy oszlop ismétlődő értékeket tartalmaz, a SELECT DISTINCT csak az egyedi értékeket adja vissza, megtartva aping egyetlen sor minden ismétlődéscsoporthoz. Ez akkor hasznos, ha különálló bejegyzések, például egyedi ügyfélvárosok vagy termékkategóriák ismétlődés nélküli listáját szeretné.
A DISTINCT függvény kiértékeli a SELECT utasításban felsorolt összes oszlopot annak eldöntéséhez, hogy egy sor egyedi-e. PostgreSQL A DISTINCT ON függvényt is biztosítja, amely egy megadott kifejezés minden egyes különböző értékéhez az első sort adja vissza. A DISTINCT és az ORDER BY függvényeket kombinálva szabályozhatja, hogy mely sorok jelenjenek meg, a LIMIT függvénnyel pedig korlátozhatja az eredmények számát.
PostgreSQL Válassza a Nyilatkozat az SQL Shellben lehetőséget
Step 1) Van egy „tutorials” táblázatunk két oszloppal, „id” és „tutorial_name”. Kérdezzük le. Használjuk a következő lekérdezést a táblázat adatainak listázásához:
SELECT id,tutorial_name FROM tutorials;
JEGYZET: A \c parancs használatával csatlakozz ahhoz az adatbázishoz, amely a lekérdezni kívánt táblát tartalmazza. Esetünkben a guru99 adatbázishoz csatlakozunk.
Step 2) Ha egy adott táblázat összes oszlopát meg szeretnéd tekinteni, használhatod a csillag (*) helyettesítő karaktert. Ez azt jelenti, hogy minden lehetőséget ellenőriz, és ennek eredményeként minden oszlopot visszaad.
SELECT * FROM tutorials;
Megjeleníti az oktatóanyagok táblázatának összes rekordját.
Step 3) Az ORDER záradék segítségével egy adott oszlop alapján rendezheti az adatokat egy táblázatban. Az ORDER záradék A-tól Z-ig rendezi az adatokat.
SELECT * FROM tutorials ORDER BY id;
Z-ről A-ra rendezheti a „DESC” parancsot az „ORDER BY” utasítás után.
SELECT * FROM tutorials ORDER BY id DESC;
Step 4) A SELECT DISTINCT PostgreSQL záradék használható a duplikált sorok eltávolítására az eredményből. Minden ismétlődő csoporthoz egy sort tart.
Syntax: SELECT DISTINCT column_1 FROM table_name;
Lekérdezzük le a Postgres Select Distinct id értékeket a tábla oktatóanyagainkból, különböző lekérdezéseket használva PostgreSQL:
SELECT DISTINCT(id) FROM tutorials;
Step 5) Használhatja a PostgreSQL LIMIT záradék a SELECT lekérdezés által visszaadott rekordok számának korlátozására.
SELECT * FROM tutorials LIMIT 4;
PostgreSQL Válassza ki az utasítást a pgAdmin-ban
Step 1) Az objektumfában:
- Kattintson jobb gombbal a táblázatra.
- Válassza a Szkriptek lehetőséget.
- Kattintson a SZKRIPT KIVÁLASZTÁSA gombra.
Step 2) A jobb oldali panelen:
- Szükség esetén szerkessze a SELECT lekérdezést.
- Kattintson a Villám ikonra.
- Figyeld meg a kimenetet.
DISTINCT több oszlopban
A SELECT DISTINCT záradék több oszlopra is vonatkozhat. Ha a DISTINCT után több oszlopot sorolunk fel, PostgreSQL az oszlopok kombinációját egységként kezeli, és eltávolítja azokat a sorokat, ahol a teljes kombináció ismétlődik.
Syntax: SELECT DISTINCT column_1, column_2 FROM table_name;
Például a tutorials táblából a tutorial_name és id egyedi kombinációinak visszaadásához:
SELECT DISTINCT tutorial_name, id FROM tutorials;
Ebben az esetben egy sor csak akkor törlődik, ha mind a tutorial_name, mind az id egyezik egy másik sorral. Ha két sor ugyanazzal a tutorial_name-mel rendelkezik, de eltérő azonosító értékekkel, akkor mindkettő megmarad, mivel a kombináció továbbra is egyedi. Fontos megjegyezni ezt a viselkedést: a DISTINCT nem deduplikálja egyetlen oszlopot, ha több oszlop van kijelölve; egyszerre deduplikálja az összes kiválasztott oszlopot.
DISTINCT vs. GROUP BY PostgreSQL
Mind a DISTINCT, mind a GROUP BY képes eltávolítani az ismétlődő értékeket, de különböző célokat szolgálnak:
- KÜLÖNBÖZŐ egyszerűen egyedi sorokat ad vissza az eredményből, és akkor a legjobb, ha csak egy duplikált listára van szükséged.
- CSOPORTOSÍT csoportosítja a közös értékű sorokat, így összesítő függvényeket, például COUNT, SUM vagy AVG minden egyes csoportnak.
Például az alábbi két lekérdezés is egyedi azonosítóértékeket ad vissza:
SELECT DISTINCT id FROM tutorials; SELECT id FROM tutorials GROUP BY id;
Használd a DISTINCT függvényt egyedi értékek egyszerű listájához, és a GROUP BY függvényt, ha csoportonkénti számításra is szükséged van, például annak megszámolására, hogy hány oktatóanyag osztozik az egyes azonosítókon. Egyszerű lekérdezéseknél a tervező gyakran hasonló teljesítményt produkál mindkettőnél, de a GROUP BY szükséges, ha összesítésről van szó.
Puska
SELECT [column names] FROM [table_name] [clause]
Íme a különböző paraméterek:
- oszlopnevek: Azon oszlopok neve, amelyek értékét le szeretné kérni.
- TÓL TŐL: A FROM záradék egy vagy több forrástáblát definiál a SELECT számára.
- táblázat_neve: Egy meglévő tábla neve, amelyet lekérdezni szeretne.
Különféle záradékok a következők:
| Parancsok | Leírás |
|---|---|
| * | Lekéri a táblázat összes sorának rekordjait. |
| KÜLÖNBÖZŐ | DISTINCT in PostgreSQL segít eltávolítani a duplikátumokat az eredményből. |
| RENDEZÉS | A sorokat oszlopok alapján rendezi. Az alapértelmezett rendezési sorrend növekvő. Csökkenő sorrendbe rendezéshez használja a DESC kulcsszót. |
| LIMIT | LIMIT benne PostgreSQL korlátozza a lekérdezés által visszaadott rekordok számát. |








