我如何使用django orm的SQL子查询

问题描述 投票:0回答:1

我想做这个查询用django orm获取最近的avg数据

select product_name, AVG(price) as avg_price
  from (
        select procuct_name, price, deal_date
          from deal_history
         order by deal_date desc
       ) R

所以,我试过这个问题

DealHistory.objects.all().order_by('-deal_date')\
           .values('product_name').annotate(avg_price=Avg('price'))

但是这个django-orm返回SQL查询下面

select product_name, deal_date, avg(price) as avg_price
  from deal_history
 order by deal_date desc
 group by product_name, deal_date

我该怎么办?

mysql django subquery django-orm
1个回答
0
投票

如果你想拥有所有记录的平均值,你必须使用聚合。 annotate分别为每条记录运行。

© www.soinside.com 2019 - 2024. All rights reserved.