Você deve experimentar configurações mais altas de
work_mem
até obter uma classificação na memória. Claro que você só pode ser generoso com memória se sua máquina tiver o suficiente. O que tornaria sua consulta muito mais rápida é se você armazenasse dados pré-agregados, usando uma visualização materializada ou uma segunda tabela e um gatilho em sua tabela original que mantém as somas na outra tabela atualizadas. Não sei se isso é possível com seus dados, pois não sei o que
hll_cardinality
e hll_union_agg
são.