Como eu acho que você resolveu, você não quer os parênteses após
DISTINCT . Eles parecem estar parametrizando DISTINCT , mas na verdade servem para fazer com que a consulta retorne uma única coluna do tipo registro em vez de várias colunas. O DISTINCT O operador então tenta trabalhar no registro e descobre que você não definiu uma ordenação nesse registro. Se você quiser
DISTINCT para trabalhar em um subconjunto de seus valores de retorno, use DISTINCT ON .