首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django聚合-使用bins进行分组查询

Django聚合-使用bins进行分组查询
EN

Stack Overflow用户
提问于 2010-05-17 22:55:51
回答 1查看 724关注 0票数 0

Django 1.1.1

Models.py:

代码语言:javascript
复制
class Datapoint(models.Model):
    parameter1 = models.FloatField()
    parameter2 = models.FloatField()

我想把parameter1的值分成最接近的整数(或其他舍入),然后返回这个分块的两个参数的平均值。

在SQL中,我将执行以下操作:

代码语言:javascript
复制
select round(parameter1,0),
    avg(parameter1),
    avg(parameter2)
from Datapoints
group by round(parameter1,0)
order by round(parameter1,0)

我可以在django视图中对查询集使用聚合来实现同样的目的吗,或者它只会直接按字段分组?

或者,有没有一种方法可以将四舍五入的值设置为模型中的元字段并在视图中引用它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-18 02:51:55

这应该是可行的:

代码语言:javascript
复制
from django.db.models import Avg
Datapoint.objects.extra(
    select={'rounded_param1': 'ROUND(parameter1)'}
).values('rounded_param1').annotate(Avg(parameter1)).annotate(Avg(parameter2))

查看该查询生成的SQL就会发现,它确实对四舍五入后的值进行了分组。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2850071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档