我的范围如下:
scope :billable, -> (range_start = nil, range_end = nil) {
joins(:bids)
.where("auctions.complete = 1 AND auctions.starts_at >= ? AND auctions.starts_at <= ? AND auctions.listing = 0", range_start, range_end)
.group("auctions.id")
}
我正在尝试确定如何向where子句添加约束,以允许我选择where count(bids)> auctions.items_count
最佳答案
见http://guides.rubyonrails.org/active_record_querying.html#having
在SQL中要记住的一点:
WHERE子句用于单个行中的条件,然后由GROUP BY将它们分组。
HAVING子句适用于组上的条件。
您需要确定要在结果中包括哪些组,因为您的条件使用了聚合函数count()
。因此它属于HAVING子句。
关于mysql - 获取行取决于内部连接 rails 范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47839821/