Tengo el siguiente modelo de datos:

class A(models.model):
   desc: model.CharField()

class B(models.model):
   a: model.ForeignKey('A')
   desc: models.CharField()

Tengo una vista que quiere sacar la siguiente select:
   select max(num_a) as max_num_a from (select a, count(desc) as num_a
from B group by a) as x;

He intentado hacer lo siguiente:
   result =
B.objects.values('a').annotate(num_a=Count('a')).aggregate(Max('num_a'))

Esto me da el siguiente error:
   1064, "You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near 'FROM (SELECT `B`.a` AS `a`, COUNT(`a' at line 1")

Si en lugar de obtener el máximo nos quedamos en la agrupación
funciona:
   result = B.objects.values('a').annotate(num_a=Count('a'))
y nos devuelve: {'a': 1L, 'num_a': 9}{'a': 2L, 'num_a': 6}{'a': 3L,
'num_a': 4}

No se que estoy haciendo mal, ni si hay otra forma de resolver este
problema.
Si alguien se ha encontrado con el mismo problema y lo ha resuelto, le
agradecería mucho que me diera unas pistas para solventarlo.

Muchas gracias por todo.



-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to