Du bör experimentera med högre inställningar för work_mem
tills du får en sortering i minnet. Naturligtvis kan du bara vara generös med minne om din maskin har tillräckligt med det.
Det som skulle göra din fråga mycket snabbare är om du lagrar föraggregerade data, antingen genom att använda en materialiserad vy eller en andra tabell och en utlösare på din ursprungliga tabell som håller summorna i den andra tabellen uppdaterade. Jag vet inte om det är möjligt med din data, eftersom jag inte vet vad hll_cardinality
och hll_union_agg
är.