gpt4 book ai didi

sql - 根据 ActiveRecord 关联和值获取对象集合

转载 作者:太空宇宙 更新时间:2023-11-03 16:20:58 25 4
gpt4 key购买 nike

我有两个模型/表,学校和评论。我想根据最少的评论数获取 School 对象的集合,然后获取评论表中一列的平均值。目前,我的查询运行良好,并按从 5.0 avg 到 null 最后的顺序返回所有学校,看起来像这样:

School.joins('LEFT JOIN reviews ON schools.id = reviews.school_id')
.group('schools.id')
.order('AVG(reviews.overall_experience_rating) DESC NULLS LAST')

但是,我希望能够在此处设置一个限制器,它只选择具有 15 条或更多评论的学校对象,例如:

where("school.reviews.count >= 15")

Active Record中两个模型的关联是一对多的关系。有什么想法吗?

最佳答案

我发现在 ActiveRecord 中使用 having 是我所需要的:

School.joins(:reviews)
.group('schools.id')
.having("COUNT(reviews) > ?", 15)
.order('AVG(reviews.overall_experience_rating) DESC NULLS LAST')

关于sql - 根据 ActiveRecord 关联和值获取对象集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33419421/

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