Use
DISTINCT ON
:SELECT DISTINCT ON (contenthash)
id,
contenthash,
filesize,
to_timestamp(timecreated) :: DATE
FROM mdl_files
ORDER BY contenthash, timecreated, id;
DISTINCT ON
é uma extensão do Postgres que garante que retorna uma linha para cada combinação única das chaves entre parênteses. A linha específica é a primeira encontrada com base no order by
cláusula.