sql >> Database >  >> RDS >> PostgreSQL

Postgres:onderscheiden maar slechts voor één kolom

Om een ​​onderscheid te maken op slechts één (of n) kolom(men):

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

Hiermee wordt een van de rijen met de naam geretourneerd. Als u wilt bepalen welke van de rijen worden geretourneerd, moet u bestellen:

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

Zal de eerste rij retourneren wanneer besteld door col1.

distinct on :

SELECT DISTINCT ON ( expression [, ...] ) houdt alleen de eerste rij van elke reeks rijen waarin de gegeven expressies gelijk zijn aan. De DISTINCT ON-expressies worden geïnterpreteerd volgens dezelfde regels als voor ORDER BY (zie hierboven). Merk op dat de "eerste rij" van elke set onvoorspelbaar is, tenzij ORDER BY wordt gebruikt om ervoor te zorgen dat de gewenste rij als eerste verschijnt.

De DISTINCT ON-expressie(s) moeten overeenkomen met de meest linkse ORDER BY-expressie(s). De ORDER BY-clausule bevat normaal gesproken extra expressie(s) die de gewenste prioriteit van rijen binnen elke DISTINCT ON-groep bepalen.



  1. Optionele argumenten in WHERE-clausule

  2. Ontvang een lijst met datums tussen twee datums

  3. Installeer Oracle Instant-client in Docker-container voor Python cx_Oracle

  4. Hoe u de huidige datum en tijd kunt krijgen (zonder tijdzone) in T-SQL