Django:GROUP BY两个值

AP2*_*257 22 django

我基本上喜欢和这个问题一样,但是通过两个值的组合进行分组,而不仅仅是一个:

SELECT player_type, team, COUNT(*) FROM players GROUP BY player_type, team;
Run Code Online (Sandbox Code Playgroud)

有没有人知道在Django中这是否可行以及如何实现?我正在使用1.2.

Ama*_*osh 23

Player.objects.values('player_type', 'team').order_by().annotate(Count('player_type'), Count('team'))
Run Code Online (Sandbox Code Playgroud)

  • 这个答案实际上会返回一个带有两次COUNT调用的查询,包括player_type和team.由于Django不支持计数的星号参数,因此可以使用非空字段来实现COUNT(*).PK是一个很好的候选人.因此使用Count('pk')将是正确的答案...... (15认同)