Por que DISTINCT ON
está classificando as linhas? Por exemplo, a consulta
SELECT DISTINCT ON (a) a
FROM (
VALUES (2), (3), (1)
) x(a);
terá o resultado
1
2
3
enquanto semDISTINCT ON
SELECT a
FROM (
VALUES (2), (3), (1)
) x(a);
vou pegar o pedido correto
2
3
1
Como posso preservar a ordem natural dos valores definidos? Por "ordem natural" quero dizer "a ordem em que os valores foram definidos". Eu entendo que o DBMS pode alterar a ordem se eu não especificar explicitamente com um ORDER BY
, mas não esperava que DISTINCT ON
eu interferisse dessa maneira.