gpt4 book ai didi

python - Django 使用 HAVING、COUNT 和 AVG 进行多重注释

转载 作者:行者123 更新时间:2023-11-29 23:26:24 26 4
gpt4 key购买 nike

尝试根据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]

最佳答案

它正在生成不返回任何数据的 SQL。这是因为第二个注释调用是根据第一个注释调用的结果计算的。您可以尝试将它们组合起来以避免这种情况。

Feedvote.objects.filter(city=settings.SITE_ID).annotate(
voteavg=Avg('feedvote'),
count_status=Count('business', distinct=True))

关于python - Django 使用 HAVING、COUNT 和 AVG 进行多重注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26920092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com