Если приблизительные ответы достаточно хороши, а статистика таблиц достаточно точна, вы можете использовать статистику элементов массива, собранную PostgreSQL, для решения вашей проблемы.
Предполагая, что таблица называется public.entity
, а атрибут - words
, этот запрос даст желаемый результат:
SELECT mce.elem
FROM pg_stats s
CROSS JOIN LATERAL
unnest(most_common_elems::text::text[],
most_common_elem_freqs) mce(elem, freq)
WHERE s.schemaname = 'public'
AND s.tablename = 'entity'
AND s.attname = 'words'
AND mce.elem IS NOT NULL
ORDER BY mce.freq DESC
LIMIT 100;