【发布时间】:2020-12-10 01:29:41
【问题描述】:
假设我有一张这样的桌子:
class Developer(models.Model):
first_name = models.CharField(max_length=255)
last_name= models.CharField(max_length=255)
team = models.CharField(max_length=255)
closed_tickets = models.IntegerField()
objects = DeveloperManager()
我想写一个返回的查询:
编写 SQL 以显示每个开发人员关闭的团队票证的百分比,并按贡献级别对开发人员进行排名。 像这样的东西: 有没有办法在一个查询中做到这一点?
我正在尝试用不同子句的注释方向思考
class DeveloperManager(models.Manager):
def rank(self):
return self.order_by('team').annotate(
total=models.Sum(
'closed_tickets'
),
piece=models.F('closed_tickets') / models.F('total'),
).distinct('team').values()
但它返回一个错误:
NotImplementedError: annotate() + distinct(fields) is not implemented.
【问题讨论】:
标签: sql django postgresql django-models