Est-il possible de sélectionner des lignes qui sont DISTINCT ON
des ensembles de colonnes séparés et indépendants ?
Supposons que je veuille toutes les lignes qui correspondent aux conditions suivantes :
- distinct sur
(name, birth)
- distinct sur
(name, height)
De sorte que, dans le tableau suivant, les lignes marquées d'une croix rouge ne seraient pas distinctes (avec une indication de la clause d'échec) :
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)
Dans l'exemple ci-dessus, si le DISTINCT ON
clause venait juste d'être DISTINCT ON (name, birth, height)
alors toutes les rangées auraient été considérées comme distinctes.
J'ai essayé et ça n'a pas marché :
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) ...