mysql - 获取平均值时在 Ruby + Rails 中执行子查询的最佳方法?

标签 mysql ruby activerecord subquery

尝试使用 ActiveRecord 获取此查询,我该如何正确编写它?

SELECT AVG(IF(condition)) AS average_id 
FROM (SELECT * FROM `table`
WHERE `id` = 1 
ORDER BY `date` DESC
LIMIT 10) `table`;

最佳答案

鉴于 table 是由名为 MyModel 的模型建模的 - 上面的内容将大致翻译为:

MyModel.average('IF(condition)').where(id: 1).order(date: :desc).limit(10)

关于mysql - 获取平均值时在 Ruby + Rails 中执行子查询的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23981497/

相关文章:

ruby-on-rails - ActiveRecord::未知属性错误

使用 vba 提交多个查询时 MySQL 出错

mysql - 如何提高选择案例的性能?

ruby - 一行中的两个命令,当任一结束时都结束

ruby-on-rails - Rails 设计禁用某些用户类型的密码恢复

ruby-on-rails - 当查询中存在连接和包含时,Active Record 不会更新集合

ruby-on-rails - 语法错误 : (irb):26: both block arg and actual block given

php - WordPress 查询根据自定义表获取帖子

mysql - 使用 MySQL 中的函数验证年龄

ruby-on-rails - 如何为 Jruby Oracle 连接设置 SSL?