DISTINCT
プラスウィンドウ関数
DISTINCT
を追加します 条項:
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);
DISTINCT
の詳細 :
DISTINCT ON
PostgreSQLには、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;
DISTINCT ON
の詳細 そしておそらくより速い代替案:
単純な骨材を使用した単純なケース
もし あなたのケースは実際にはデモと同じくらい単純です(そしてその最後の行から追加の列は必要ありません)、単純な集計関数はより単純になります:
SELECT a, max(b)
FROM (
VALUES
(1, 'do not want this')
, (1, 'just want this')
) sub(a, b)
GROUP BY a;