我一直在使用 DISTINCT ON 谓词并决定将其替换为 GROUP BY,主要是因为它“不是 SQL 标准的一部分,并且由于其结果的潜在不确定性而有时被认为是不好的风格”。
我将 DISTINCT ON 与 ORDER BY 结合使用,以便选择历史表中的最新记录,但我不清楚如何对 GROUP BY 执行相同操作。为了从一个结构转移到另一个结构,有什么通用方法?
一个例子可能是
SELECT
DISTINCT ON (f1, f2 ) *
FROM table
ORDER BY f1, f2, datefield DESC;
我得到“最新”的(f1,f2)对。