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: idbcoloren 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