En venlig person fra Postgresqls IRC-kanal hjalp med at finde svaret og lave den korrekte forespørgsel. Æren er faktisk hans, ikke min.
Han hjalp med at indse, at albummene og srcs'erne skulle føjes til arrays til sammenligning. For eksempel:
SELECT array_agg(rep_id), count(*) AS ct
FROM (SELECT rep_id,
data->>'background' as background,
array_agg(o->>'album' order by o->>'album') as albums,
array_agg(o->>'src' order by o->>'album') as srcs
FROM reports r,
json_array_elements(r.data->'objects') o
GROUP BY rep_id) s
GROUP BY background, albums, srcs
ORDER BY count(*) DESC
LIMIT 5;
Jeg ved ikke om det er den bedste måde at gøre det på, men det virker. Forslag modtages gerne.