【发布时间】:2014-01-15 09:06:07
【问题描述】:
我有一个如下所示的查询集:
{id, group_id, date}
对于以group_id 为键的每个组,我想返回id 和最早的date。我将如何在 django 查询中做到这一点?还是 order_by date 然后使用 python dict 来忽略第一个之后具有相同 group_id 的所有元素更有效?
【问题讨论】:
我有一个如下所示的查询集:
{id, group_id, date}
对于以group_id 为键的每个组,我想返回id 和最早的date。我将如何在 django 查询中做到这一点?还是 order_by date 然后使用 python dict 来忽略第一个之后具有相同 group_id 的所有元素更有效?
【问题讨论】:
Django 并没有真正的GROUP BY 运算符。您可以尝试通过订购和distinct() 来模仿它。
试试这样的:
queryset.order_by('group_id', 'date').distinct('group_id')
注意:group_id 必须在顺序中排在第一位才能执行distinct() 操作。
【讨论】: