DISTINCT
más función de ventana
Agregar un DISTINCT
cláusula:
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);
Más información sobre DISTINCT
:
Más simple y rápido con DISTINCT ON
PostgreSQL también tiene esta extensión del estándar 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;
Más información sobre DISTINCT ON
y posiblemente alternativas más rápidas:
Caso simple con árido liso
Si su caso es realmente tan simple como su demostración (y no necesita columnas adicionales de esa última fila), una función agregada simple será más simple:
SELECT a, max(b)
FROM (
VALUES
(1, 'do not want this')
, (1, 'just want this')
) sub(a, b)
GROUP BY a;