Ruby On Rails检索mysql数据库数据’a’不同’b’
我的数据库有一个设备读取列表,
列是id,device_id,device_reading,update_time
如何为每个设备选择所有最新读数?
这意味着,我首先需要根据update_time对数据进行排序
然后我需要过滤数据库使用一些独特的方法(唯一的device_id)
那么我可以从刚刚过滤的行中检索device_reading。
也就是说,从表中检索列a,其中b是不同的
我该怎么做到这一点? 在铁轨上的ruby
提前致谢
假设模型名称是DeviceReading
DeviceReading.distinct(:device_id).order('update_time DESC').pluck(:device_reading)
如果要按升序排序,可以使用ASC
代替DESC
来源: 独特和采摘 排序/订单
编辑:独特只适用于rails 4,所以如果你使用rails 3你应该做这样的事情:
DeviceReading.select(:device_id).uniq.pluck(:device_reading)
但是,当我在上面链接.order('update_time DESC')
时,我得到了神秘的错误。 我想找到解决方案。 同时我希望这可以帮助你。
来源: 明显的未定义错误
这个问题看起来非常类似于下面的问题:
选择每个GROUP BY组中的第一行?
在没有优雅解决方案可以找到Rails方式的情况下,您可以先找出正确的sql并使用find_by_sql
来检索数据集。