Django查询以获取ArrayField列的所有不同值的计数

阿尔巴兹·侯赛因

计算ArrayField列的所有不同值的最有效方法是什么。假设我有一个名称MyModelcities字段为postgres.ArrayField的模型。

#models.py
class MyModel(models.Model):
     ....
     cities = ArrayField(models.TextField(blank=True),blank=True,null=True,default=list) ### ['mumbai','london']

并假设我们MyModel有以下3个对象,其cities字段值如下。

1. ['london','newyork']
2. ['mumbai']
3. ['london','chennai','mumbai']

  • cities字段的不同值进行计数会在整个列表中执行,而不是在每个元素上执行。
## Query
MyModel.objects.values('cities').annotate(Count('id')).order_by().filter(id__count__gt=0)

  • 在这里,我想citiescitiesfield.list的每个元素上的field计算不同的值这应该给出以下最终输出。
[{'london':2},{'newyork':1},{'chennai':1},{'mumbai':2}]
JPG格式

在数据库级别本身中通过操作进行分组

from django.db import connection

cursor = connection.cursor()
raw_query = """
select unnest(subquery_alias.cities) as distinct_cities, count(*) as cities_group_by_count
    from (select cities from sample_mymodel) as subquery_alias group by distinct_cities;
"""

cursor.execute(raw_query)
result = [{"city": row[0], "count": row[1]} for row in cursor]
print(result)

参考文献

  1. unnest()-postgress数组函数
  2. Django:直接执行自定义SQL

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Django查询以获取特定列的所有不同值的计数

django chart.js-查询以获取特定列的所有不同值的计数

在单个MySQL查询中获取所有列的不同计数

如何根据sql server中的where条件获取表中所有列的值的不同计数?

获取在同一 SELECT SQL 查询中获得的列中所有类型值的计数

Sqlite获取行中所有不同值的计数

获取第一个不同(给定)列值的所有值的 SQL 查询

获取具有不同值计数大于指定值的列

如何获取其中具有不同值的列的计数

获取psql中给定列的所有可能值的计数

如何获取表中所有列的重复值计数

Mysql:获取两列中所有值的计数

每天获取所有不同ID的计数

选择查询以获取与列中所有值对应的行

Java-MySql:查询以获取列的所有值

MySQL查询与A列不同,所有查询在B列中都没有特定值

改进对在另一列中具有特定值的不同值进行计数的查询

java:获取Map <String,Set <String >>中所有不同键和值的计数

从查询列表中的所有查询中获取计数

如何在 Django 模板中的字段中获取具有特定值的所有对象的计数?

获取不同值的计数

具有不同类型的Django ArrayField

df中所有列的值计数?

动态SQL查询以查找表所有列的缺失值计数

使用 Spring MongoRepository 根据相同查询参数的不同值组合获取所有 Mongo 文档

如何获取查询中的所有值?

从查询中获取所有月份,包括零计数

计数从列A列B的所有值,而仅某些值

SQL查询基于不同列的先前值对行进行计数