我甚至不知道该怎么说,举个例子:
我有两个模特,
Chicken
id
name
EggCounterReadings
id
chicken_id
value_on_counter
timestamp我不总是记录每只鸡的计数,当我数的时候。
使用ActiveRecord,如何获得每只鸡的最新鸡蛋数?
所以,如果我有1只鸡和3只鸡,那么今天的数量是1只,明天是15只,第二天是18只。那只鸡已经下了18个蛋,而不是34个。
UPDATE:找到了我在MySQL中想要做的事情。找到"保留某一列的分组最大值的行。“。所以我需要.find_by_sql("SELECT * FROM (SELECT * FROM EggCounterReadings WHERE <conditions> ORDER BY timestamp DESC) GROUP BY chicken_id")
发布于 2010-11-17 21:57:04
考虑到你最新的问题,我改变了我的答案。
chicken = Chicken.first
count = chicken.egg_counter_readings.last.value_on_counter如果你不想要最新的记录,但是想要最大的产蛋量,那就试试这个:
chicken = Chicken.first
count = chicken.egg_counter_readings.maximum(value_on_counter)我认为那应该能做你想做的事。
https://stackoverflow.com/questions/4208440
复制相似问题