sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgres:Distinkt, men kun for én kolonne

For at gøre en distinkt på kun én (eller n) kolonne(r):

select distinct on (name)
    name, col1, col2
from names

Dette vil returnere enhver af rækkerne, der indeholder navnet. Hvis du vil kontrollere, hvilken af ​​rækkerne der skal returneres, skal du bestille:

select distinct on (name)
    name, col1, col2
from names
order by name, col1

Returnerer første række ved bestilling af kol1.

distinct on :

SELECT DISTINCT ON ( udtryk [, ...] ) beholder kun den første række af hvert sæt rækker, hvor de givne udtryk evalueres til at være lig. DISTINCT ON-udtrykkene fortolkes efter de samme regler som for ORDER BY (se ovenfor). Bemærk, at den "første række" i hvert sæt er uforudsigelig, medmindre ORDER BY bruges til at sikre, at den ønskede række vises først.

DISTINCT ON-udtrykket skal matche det eller de ORDER BY-udtryk længst til venstre. ORDER BY-sætningen vil normalt indeholde yderligere udtryk, der bestemmer den ønskede forrang for rækker inden for hver DISTINCT ON-gruppe.



  1. Sådan opretter du en tabel fra en SQL-forespørgsel

  2. Opdel streng efter skilletegnsposition ved hjælp af oracle SQL

  3. Hvordan bruger man en dynamisk parameter i en IN-klausul i en JPA-navngivet forespørgsel?

  4. Gendannelse af SQL Editor-filer (forespørgsler, procedurer) efter tudse for Oracle-nedbrud eller hængende