Samenvatting: In deze tutorial leert u hoe u de PostgreSQL SELECT DISTINCT
clausule kunt gebruiken om dubbele rijen te verwijderen uit een resultaat set die door een query wordt geretourneerd.
Inleiding tot PostgreSQL SELECT DISTINCT clausule
De DISTINCT
clausule wordt gebruikt in het SELECT
statement om dubbele rijen te verwijderen uit een resultatenset. De DISTINCT
clausule behoudt één rij voor elke groep van duplicaten. De DISTINCT
-clausule kan worden toegepast op een of meer kolommen in de keuzelijst van het SELECT
-commando.
Het volgende illustreert de syntaxis van de DISTINCT
-clausule:
Code language: SQL (Structured Query Language) (sql)SELECT DISTINCT column1FROM table_name;
In dit statement worden de waarden in de column1
-kolom gebruikt om het duplicaat te evalueren.
Als u meerdere kolommen opgeeft, zal de DISTINCT
-clausule het duplicaat evalueren op basis van de combinatie van waarden van deze kolommen.
Code language: SQL (Structured Query Language) (sql)SELECT DISTINCT column1, column2FROM table_name;
In dit geval wordt de combinatie van waarden in zowel column1
als column2
kolommen gebruikt voor het evalueren van het duplicaat.
ostgreSQL biedt ook de DISTINCT ON (expression)
om de “eerste” rij van elke groep duplicaten te behouden met behulp van de volgende syntaxis:
De volgorde van de rijen die worden geretourneerd door het SELECT
statement is niet gespecificeerd, daarom is de “eerste” rij van elke groep van het duplicaat ook niet gespecificeerd.
Het is een goed gebruik om altijd de ORDER BY
clausule te gebruiken met de DISTINCT ON(expression)
om de resultatenset voorspelbaar te maken.
Merk op dat de DISTINCT ON
expressie moet overeenkomen met de meest linkse expressie in de ORDER BY
clausule.
PostgreSQL SELECT DISTINCT voorbeelden
Laten we een nieuwe tabel maken genaamd distinct_demo
en er gegevens in invoegen om de DISTINCT
clausule te oefenen.
Noteer dat u in de volgende tutorial leert hoe u een tabel maakt en gegevens in een tabel invoegt. In deze tutorial voert u gewoon het statement uit in psql of pgAdmin om de statements uit te voeren.
Gebruik eerst het volgende CREATE TABLE
statement om de distinct_demo
tabel aan te maken die uit drie kolommen bestaat: id
bcolor
en fcolor
.
Code language: SQL (Structured Query Language) (sql)CREATE TABLE distinct_demo (id serial NOT NULL PRIMARY KEY,bcolor VARCHAR,fcolor VARCHAR);
Tweede, voeg enkele rijen in de distinct_demo
tabel met behulp van het volgende INSERT
statement:
Derde, query de gegevens uit de distinct_demo
tabel met behulp van het SELECT
statement:
Code language: SQL (Structured Query Language) (sql)SELECTid,bcolor,fcolorFROMdistinct_demo ;
PostgreSQL DISTINCT één kolom voorbeeld
Het volgende statement selecteert unieke waarden in de kolom bcolor
uit de tabel t1
en sorteert de resultatenset in alfabetische volgorde met behulp van de clausule ORDER BY
.
Code language: SQL (Structured Query Language) (sql)SELECTDISTINCT bcolorFROMdistinct_demoORDER BYbcolor;
PostgreSQL DISTINCT meerdere kolommen
Het volgende statement demonstreert hoe u de DISTINCT
-clausule op meerdere kolommen kunt gebruiken:
Code language: SQL (Structured Query Language) (sql)SELECTDISTINCT bcolor,fcolorFROMdistinct_demoORDER BYbcolor,fcolor;
Omdat we zowel bcolor
als fcolor
kolommen in de SELECT DISTINCT
clausule hebben gespecificeerd, PostgreSQL combineerde de waarden in beide bcolor
en fcolor
kolommen om de uniciteit van de rijen te evalueren.
De query retourneert de unieke combinatie van bcolor
en fcolor
uit de distinct_demo
tabel. Merk op dat de distinct_demo
tabel twee rijen heeft met red
waarde in zowel bcolor
als fcolor
kolommen. Toen we de DISTINCT
toepasten op beide kolommen, werd één rij verwijderd uit de resultaatverzameling omdat het een duplicaat is.
PostgreSQL DISTINCT ON example
Het volgende statement sorteert de resultatenset op de bcolor
en fcolor
, en houdt vervolgens voor elke groep duplicaten de eerste rij in de geretourneerde resultatenset.
Code language: SQL (Structured Query Language) (sql)SELECTDISTINCT ON (bcolor) bcolor,fcolorFROMdistinct_demo ORDER BYbcolor,fcolor;
Hier is de uitvoer:
In deze tutorial hebt u geleerd hoe u PostgreSQL SELECT DISTINCT
statement kunt gebruiken om dubbele rijen te verwijderen die door een query zijn geretourneerd.
- Was deze handleiding nuttig?
- Ja/Nee