【发布时间】:2014-11-13 23:01:26
【问题描述】:
尝试显示基于 AVG 的 TOP 10 商业人气排行榜。一切正常,但我正在尝试添加其他条件,例如仅包括拥有至少 10 票的企业。
这适用于所有结果的 AVG:
Feedvote.objects.filter(site_id=settings.SITE_ID).annotate(
voteavg=Avg('feedvote')).order_by('-voteavg')[:10]
这里尝试添加至少 10 票的 HAVING 条件:
编辑:当我在下面运行此代码时,我什么也没有得到,没有错误,没有值。
Feedvote.objects.filter(city=settings.SITE_ID).annotate(
voteavg=Avg('feedvote')).annotate(
count_status=Count('business')).filter(
count_status__gt=10).order_by('-voteavg')[:10]
【问题讨论】:
-
请描述您遇到的问题。
-
当我使用
COUNT运行上面的代码时,我什么也没有得到,没有错误,没有值,什么都没有。 -
如果您需要“至少 10 个”,那么您应该使用“__gte”而不是“__gt”
-
@shellbye 你是对的,但这并不能解决当 __gte 大于 1 时没有任何结果的问题。不知何故,它没有按业务 ID 对结果进行分组。