是否可以选择DISTINCT ON
一些单独的、独立的列集的行?
假设我想要所有符合以下条件的行:
- 区别于
(name, birth)
- 区别于
(name, height)
因此,在下表中,标有红叉的行不会是不同的(带有失败子句的指示):
name birth height
--------------------------
William 1976 1.82
James 1981 1.68
Mike 1976 1.68
Tom 1967 1.79
William 1976 1.74 ❌ (name, birth)
William 1981 1.82 ❌ (name, height)
Tom 1978 1.92
Mike 1963 1.68 ❌ (name, height)
Tom 1971 1.86
James 1981 1.77 ❌ (name, birth)
Tom 1971 1.89 ❌ (name, birth)
在上面的例子中,如果DISTINCT ON
子句刚刚是DISTINCT ON (name, birth, height)
,那么所有的行都会被认为是不同的。
试过但没有用:
SELECT DISTINCT ON (name, birth) (name, height) ...
SELECT DISTINCT ON (name, birth), (name, height) ...
SELECT DISTINCT ON ((name, birth), (name, height)) ...
SELECT DISTINCT ON (name, birth) AND (name, height) ...
SELECT DISTINCT ON (name, birth) AND ON (name, height) ...
SELECT DISTINCT ON (name, birth) DISTINCT ON (name, height) ...
SELECT DISTINCT ON (name, birth), DISTINCT ON (name, height) ...