sql - rails : Order by sum of two columns

标签 sql ruby-on-rails ruby-on-rails-3 activerecord sql-order-by

所以,我有一个 Photo型号可在full_size 下载和 presentation_size .当用户下载照片时,我会在照片的 full_downloads 上进行跟踪。和 presentation_downloads属性。

这都很好。

有时我想知道总共有多少下载量。我有一个简单的方法,total_downloads看起来像这样:

def total_downloads
  self.full_downloads + self.presentation_downloads
end

我的问题是:我希望能够通过所有这三个(完整、演示、总下载)订购照片。前两个很容易,但是如何通过两列的总和进行排序?请注意,这至少需要同时兼容 SQLite 和 PG。

一个附带问题,制作 total_downloads 会更快吗?方法查询,如果是这样,最好的方法是什么?我知道总结一下你可以打电话的类(class)Photo.sum(...) ,但我不确定如何对单个记录上的两列执行此操作。

谢谢!

最佳答案

您现在可能需要添加 Photo.order(Arel.sql('full_downloads + presentation_downloads'))避免UnknownAttributeReference error

关于sql - rails : Order by sum of two columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7116772/

相关文章:

ruby-on-rails - 加速 pg_search 中使用关联的查询

ruby-on-rails - Rails 3 及更高版本 : default implicit routing rule is considered a bad practice, 为什么?

c# - Entity Framework 代码优先数据库恢复模型

sql - 在递归 SQL 表中查找最低公共(public)父级

sql - 使用 SQL 查找列中的最大值?

ruby-on-rails-3 - 如何从 Mongoid 直接访问 MongoDB API?

java.sql.SQLException : [Microsoft][ODBC Driver Manager] Invalid string or buffer length 异常

ruby-on-rails - Rails 5 - 如何恢复/删除已经广播的通知?

ruby-on-rails - "rake test"不加载灯具?

ruby-on-rails - Rails 中的 Kerberos 身份验证