- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个定义的模型
from django.contrib.postgres.fields import ArrayField
class Model(models.Model):
name = models.CharField(max_length=255)
tags = ArrayField(models.CharField(max_length=255))
我想要一种方法来有效地获取我的标记 ArrayField 中每个不同元素的计数。我将这段代码放在一起尝试做到这一点。
Model.objects.annotate(elems=Func(F('tags'), function='unnest')).values_list('elems', flat=True).annotate(c=Count('elems'))
但是返回错误
...aggregate function calls cannot contain set-returning function calls
LINE 1: ...COUNT(unnest("...
^
HINT: You might be able to move the set-returning function into a LATERAL FROM item.
关于如何使这个查询有效的任何想法?
编辑
这是 Django 的 ORM 生成的 SQL。
SELECT unnest("model"."tags") AS "elems", COUNT(unnest("model"."tags")) AS "c" FROM "model" GROUP BY unnest("model"."tags");
最佳答案
这个查询对我有用:
select unnest(tags) as tag, count(tags) from model group by tag;
我认为这个 ORM 查询给出了相同的结果:
from django.db.models import Func, F, Count
Model.objects.annotate(tag=Func(F('tags'), function='unnest')).values('tag').order_by('tag').annotate(count=Count('id')).values_list('tag', 'count')
我创建了下表并填充了示例值:
create table model(
id serial primary key,
name text,
tags text[]
);
insert into model(name, tags) values ('a', array['a', 'b', 'c']);
insert into model(name, tags) values ('b', array['b', 'b', 'c']);
select unnest(tags) as tag, count(tags) from model group by tag;
+---+-----+
|tag|count|
+---+-----+
|c |2 |
|a |1 |
|b |3 |
+---+-----+
关于django - 计算 Django ArrayField 中的不同元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63207427/
我想使用数组字段来存储代表特定自定义类的 json 字符串列表。我所做的是: from django.contrib.postgres.fields import JSONField, ArrayFi
是否可以为 ArrayField 添加默认值? 我尝试为电子邮件字段执行此操作,但这不起作用: 常量.py: ORDER_STATUS_CHANGED = 'order_status_changed'
我正在使用 Django Postgres ArrayField response_headers = ArrayField(models.TextField(blank=True),blank=Tr
我有一个简单的模型 class Texts(models.Model): instructions_top_char instructions_top_char = ArrayFiel
我正在将 PostgreSQL 与 Django 一起使用,并且正在尝试使用 ArrayField(CharField()) 存储值和检索都不会引发任何异常,但尝试存储 ["string", "ano
我有以下错误信息: AttributeError: 'module' object has no attribute 'ArrayField' 相关代码段如下: from __future__ imp
我有一些用户帐户的字段为“donation_methods”。用户可以选择不同的方式来接受捐赠。默认情况下,每个用户都应该在数组中具有值“cash” donation_methods = ArrayF
ArrayField 的当前管理小部件是一个字段,以逗号作为分隔符,如下所示(文本列表): 这并不理想,因为我会有更长的文本(甚至 20 个单词)并包含逗号。我可以 change the delimi
我有一个类型 ArrayField在一个模型中。 my_list 的建议元素列表中的后端自动地。但是,用户随后需要根据需要更新此列表。该模型如下所示: class my_model(models.Mo
我正在使用 Django 的 postgres ArrayField。 假设我有这样一个模型: from django.db import models from django.contrib.pos
为了解决我的(有点特殊的)问题,我发现我必须使用 Django ArrayField: https://docs.djangoproject.com/en/2.1/ref/contrib/postgr
在我的 Django 应用程序中,使用 Postgresql,我有一个带有 CharFields 的 ArrayField 的模型。我想知道是否有一种数据库方法来聚合并获取表中所有字符串的列表。例如:
对于我数据库中的模型,我需要为特定字段存储大约 300 个值。如果我使用特定于 Postgres 的 ArrayField,在性能 和查询简单性 方面会有什么缺点?而不是具有一对多关系的单独表? 最佳
我需要配置一个 django.contrib.postgres.fields.ArrayField,其中第一个元素是 float ,第二个元素是一个小的正整数: data = [[1.23, 3],
我正在尝试更改 Django 为 ArrayField 生成的默认错误消息(特别是输入了太多项的错误消息) 如果用户在我的 ArrayField 中输入了太多项目,则会在模板中生成以下消息: List
我的模型看起来像这样: from django.contrib.postgres.fields import ArrayField class Trigger(models.Model): s
下面的案例 [{type: x, val: y}, {...}, {...}, ...] 可以单独用 JSONField 表示。 还有下面的案例 [1,2,3,4,5] 可以用 JSONField 表
我有一个通常看起来像这样的模型: class CategoryModel(models.Model): categories = ArrayField(..) 假设我有两个类别,“catego
我有一个定义的模型 from django.contrib.postgres.fields import ArrayField class Model(models.Model): name
我有一个定义的模型 from django.contrib.postgres.fields import ArrayField class Model(models.Model): name
我是一名优秀的程序员,十分优秀!