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实现