DISTINCT
più funzione finestra
Aggiungi un DISTINCT
clausola:
SELECT DISTINCT a
, last_value(b) OVER (PARTITION BY a ORDER BY b
RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
FROM (
VALUES
(1, 'do not want this')
,(1, 'just want this')
) sub(a, b);
Ulteriori informazioni su DISTINCT
:
Più semplice e veloce con DISTINCT ON
PostgreSQL ha anche questa estensione dello standard SQL:
SELECT DISTINCT ON (a)
a, b
FROM (
VALUES
(1, 'do not want this')
, (1, 'just want this')
) sub(a, b)
ORDER BY a, b DESC;
Ulteriori informazioni su DISTINCT ON
e possibilmente alternative più veloci:
Cassa semplice con aggregato semplice
Se il tuo caso è in realtà semplice come la tua demo (e non hai bisogno di colonne aggiuntive da quell'ultima riga), una semplice funzione di aggregazione sarà più semplice:
SELECT a, max(b)
FROM (
VALUES
(1, 'do not want this')
, (1, 'just want this')
) sub(a, b)
GROUP BY a;