Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 执行“按sql求和”的最佳方法是什么?_Ruby On Rails - Fatal编程技术网

Ruby on rails 执行“按sql求和”的最佳方法是什么?

Ruby on rails 执行“按sql求和”的最佳方法是什么?,ruby-on-rails,Ruby On Rails,在Rails 2.3.8中,有一个类方法ActiveRecord::Base.count_by_sql,它允许执行自定义的SELECT count*。。。。执行自定义选择和是否保存。。。使用此方法进行查询?如果没有,应该如何执行这样的查询?ActiveRecord::Base.connection.execute是唯一的选项吗 谢谢 编辑:我要执行的查询嵌套了另一个查询。这就是为什么我认为ActiveRecord::Calculations中的方法是不够的。检查ActiveRecord::Cal

在Rails 2.3.8中,有一个类方法ActiveRecord::Base.count_by_sql,它允许执行自定义的SELECT count*。。。。执行自定义选择和是否保存。。。使用此方法进行查询?如果没有,应该如何执行这样的查询?ActiveRecord::Base.connection.execute是唯一的选项吗

谢谢

编辑:我要执行的查询嵌套了另一个查询。这就是为什么我认为ActiveRecord::Calculations中的方法是不够的。

检查ActiveRecord::Calculations。API文档是

假设您有用户模型,您可以这样做:

答案是从ActiveRecord::ConnectionAdapters::DatabaseStatements模块中选择_值。它返回查询返回的第一行的第一列中的值。select_值返回字符串,因此可能需要进行转换

例如:

ActiveRecord::Base.connection.select_value("Some complicated sql")

谢谢你的回答,但对我来说这还不够。我以前没有清楚地提到这一点,但我需要传递原始SQL,至少我认为是这样。我的查询嵌套了另一个查询,它如下所示:SELECT MAX。。。从这里开始,我无法摆脱嵌套查询。这就是为什么我需要像count\u by\u sql这样的方法。
ActiveRecord::Base.connection.select_value("Some complicated sql")