Django 1.1.1
Models.py:
class Datapoint(models.Model):
parameter1 = models.FloatField()
parameter2 = models.FloatField()我想把parameter1的值分成最接近的整数(或其他舍入),然后返回这个分块的两个参数的平均值。
在SQL中,我将执行以下操作:
select round(parameter1,0),
avg(parameter1),
avg(parameter2)
from Datapoints
group by round(parameter1,0)
order by round(parameter1,0)我可以在django视图中对查询集使用聚合来实现同样的目的吗,或者它只会直接按字段分组?
或者,有没有一种方法可以将四舍五入的值设置为模型中的元字段并在视图中引用它?
发布于 2010-05-18 02:51:55
这应该是可行的:
from django.db.models import Avg
Datapoint.objects.extra(
select={'rounded_param1': 'ROUND(parameter1)'}
).values('rounded_param1').annotate(Avg(parameter1)).annotate(Avg(parameter2))查看该查询生成的SQL就会发现,它确实对四舍五入后的值进行了分组。
https://stackoverflow.com/questions/2850071
复制相似问题