【问题标题】:how can i use SQL subquery with django orm我如何在 django orm 中使用 SQL 子查询
【发布时间】:2018-08-03 02:00:06
【问题描述】:

我想用 django orm 查询最近的平均数据

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

所以,我试过这个orm

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】:

    如果您想获得所有记录的平均值,则必须使用聚合。分别为每条记录运行注释。

    【讨论】:

    • 但我需要 QuerySet 而不是 dict 对象...因为我对这个 orm 结果有更多的步骤
    • 你的意思是,你想在每条记录中显示相同的平均值吗?
    猜你喜欢
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 2022-01-21
    • 2019-10-17
    • 2014-09-04
    • 2018-12-05
    • 2020-07-06
    相关资源
    最近更新 更多