� 杰尼龟 2022-05-20 14:34 采纳率: 50%
浏览 10
已结题

python django orm如何操作子查询table

有一张告警记录表,需要统计按时间排序超过3000条数据中task_id出现的次数,比如共4000条数据,按时间排序后取最后1000条

取后1000条数据ORM,求和方法

WarningRecordModel.objects.values("gc_task_id").annotate(count=Count('gc_task_id')).order_by('-createdtime')[3000:]
转换后mysql
SELECT `gh_t_warning_record`.`gc_task_id`, COUNT(`gh_t_warning_record`.`gc_task_id`) AS `count` FROM `gh_t_warning_record` GROUP BY `gh_t_warning_record`.`gc_task_id`, `gh_t_warning_record`.`createdtime` ORDER BY `gh_t_warning_record`.`createdtime` DESC 

发现问题

因为groupby中有了createdtime,所以没有得到需要的聚合

需要mysql
SELECT  l.gc_task_id,COUNT(l.gc_task_id)
FROM   ( SELECT * 
         FROM   gh_t_warning_record 
         ORDER BY createdtime desc 
         LIMIT 18446744073709551615 OFFSET 2000
       ) as l 
 GROUP BY l.gc_task_id


求解需要mysql怎么用ORM实现
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 5月28日
    • 创建了问题 5月20日

    悬赏问题

    • ¥15 Vue3 大型图片数据拖动排序
    • ¥15 划分vlan后不通了
    • ¥15 GDI处理通道视频时总是带有白色锯齿
    • ¥20 用雷电模拟器安装百达屋apk一直闪退
    • ¥15 算能科技20240506咨询(拒绝大模型回答)
    • ¥15 自适应 AR 模型 参数估计Matlab程序
    • ¥100 角动量包络面如何用MATLAB绘制
    • ¥15 merge函数占用内存过大
    • ¥15 使用EMD去噪处理RML2016数据集时候的原理
    • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大