【发布时间】:2021-12-12 04:56:46
【问题描述】:
假设我有两个模型::User 和:Ringtone。 A :User 可以有多个 :Ringtones 并且一个 :Ringtone 属于一个用户。我希望能够使用 ActiveRecord 查询接口来计算属于:User 的平均铃声数量,但我正在努力弄清楚如何。
使用原始 sql 我可以得到如下数据:
ActiveRecord::Base.connection.execute("
(with tones_count as
(select
user_id, count(ringtones.id)
from
ringtones
group by 1)
select avg(count) from tones_count)").values
但这并不理想,我更希望能够使用 ActiveRecord 进行此查询/计算...
【问题讨论】:
-
这里的一切都很好。 ActiveRecord 查询接口不擅长做任何比最琐碎的数据库计算更多的事情,而且你想出的东西很可能会降低性能或降低可读性。
标签: sql ruby-on-rails postgresql activerecord