作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个模型,里面有一个数组字段。该字段包含每个实体的一些词。模型如下:
class Entity(models.Model):
words = ArrayField(
models.CharField(max_length=255, blank=True),
null=True,
blank=True
)
我想累积这个模型的所有对象的列表,并找到这些数组中出现的 100 个最常见的单词。有什么方法可以在 Postgresql 中执行此操作,或者执行此操作的有效方法是什么?
最佳答案
如果近似答案足够好,并且表统计信息相当准确,您可以使用 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;
关于python - array fileld postgres中最常见的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51167342/
我有一个模型,里面有一个数组字段。该字段包含每个实体的一些词。模型如下: class Entity(models.Model): words = ArrayField( mod
我是一名优秀的程序员,十分优秀!