ruby-on-rails - rails : select records with maximum date

标签 ruby-on-rails postgresql rails-activerecord

在我的应用程序中,用户可以保存给定日期的销售报告。我现在要做的是查询数据库并仅选择最新的销售报告(所有那些在我的表中具有最大日期的报告)。

我知道如何按日期对所有报告进行排序并选择日期最长的报告 - 但是我不知道如何检索多个日期最长的报告。

我怎样才能做到这一点?我正在使用 Postgres。

最佳答案

是这样的吗?

SalesReport.where(date: SalesReport.maximum('date'))

编辑:只是为了让@muistooshort 在下面的评论可见,您可以使用以下形式将两个查询减少为一个查询(使用子选择):

SalesReport.where(date: SalesReport.select('MAX(date)'))

如果您的 Web 主机和数据库主机之间存在大量延迟,这可能会使执行时间减半。它几乎总是首选形式。

关于ruby-on-rails - rails : select records with maximum date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42497964/

相关文章:

postgresql - 一个将本地PostgreSQL转储还原到kubectl pod的命令?

sql - 在一组两种可能性中选择唯一行

ruby-on-rails - Rails after_save 回调未触发

ruby-on-rails - 单个测试的 Rails/RSpec 切换缓存

ruby-on-rails - Heroku rake Assets :precompile failed to compile Rails app

ruby-on-rails - 为什么Omniauth重定向到/auth/failure而不是/auth/:provider/failure?

postgresql - 大数据集的空间连接查询优化

ruby-on-rails - Rails 4强参数无必填参数

ruby-on-rails - Rails4,获取所有(多级)评论及其作者和作者评级

mysql - 事件记录查找 - 尽管添加了索引,find_by_inventory_product_id 仍间歇性缓慢