如何选择 COUNT(*) GROUP BY DJANGO? [复制]

Posted

技术标签:

【中文标题】如何选择 COUNT(*) GROUP BY DJANGO? [复制]【英文标题】:How to do SELECT COUNT(*) GROUP BY DJANGO? [duplicate] 【发布时间】:2017-11-04 11:15:24 【问题描述】:

我想在 Django 中执行这个 mysql 查询:

SELECT Descripcion,count(*)
FROM votaciones.Tarjeton 
WHERE Voto_idVoto=1 
GROUP BY Descripcion;

MySQL 的预期结果:

'', '1'

“卡米洛·戈麦斯·奥尔特加”,“3”

'胡安·何塞·马尔克斯','3'

'佩德罗·巴勃罗·德拉马尔','15'

'Sandra Mejia Gutierez','4'

我的模型是:

class Tarjeton(models.Model):
idtarjeton = models.AutoField(db_column='idTarjeton', primary_key=True)  # Field name made lowercase.
descripcion = models.CharField(db_column='Descripcion', max_length=45)  # Field name made lowercase.
cadidatos_idcadidatos = models.ForeignKey(Cadidatos, models.DO_NOTHING, db_column='Cadidatos_idCadidatos')  # Field name made lowercase.
voto_candidato = models.ForeignKey('Voto', models.DO_NOTHING, db_column='Voto_idVoto')  # Field name made lowercase.

class Meta:
    managed = False
    db_table = 'Tarjeton'

【问题讨论】:

您应该查看Django aggregation 中的示例。 ***.com/a/629691/6382901 的可能重复项 【参考方案1】:

试试这个方法:

from django.db.models import Count
Tarjeton.objects.filter(voto_candidato=1).values('descripcion').annotate(Count('descripcion')).order_by()

【讨论】:

观察投票 Pedro Pablo de la Mar 15 Sandra Mejia Gutierez 4 JUan Jose Marquez 3 Camilo Gomez Ortega 3 1 结果不正确? 结果和你的问题一样,只是有序而已。 是的,结果是正确的,谢谢

以上是关于如何选择 COUNT(*) GROUP BY DJANGO? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

oracle查询选择语句——count、sum、order by、group by

Postres SQL 使用 GROUP BY 和 COUNT 选择

Django 做一个简单的 group by/count 语句

SQL如何先用group by分组,并将分组的结果distinct?

如何优化 PostgreSQL COUNT GROUP BY 查询?

如何在单个查询中使用 count、'like' 和 group by?