0
我有一个评分模型,我需要从两列中提取平均值 - 准确度和时间。我正在使用以下查询将两个值一起取代而不是查询模型两次。通过ActiveRecord提取多个列的平均值
Grade.where(student_id: 25).pluck('avg(accuracy), avg(time)')
我得到两个值好了,但他们在下面的格式,我不明白:
[[#<BigDecimal:7f9c5a890410,’8.0’,9(18)>, #<BigDecimal:7f9c5a8903c0,’10.0’,9(18)>]]
我如何提取只是我从这个所需要的价值?即avg_accuracy = 8.0和avg_time = 10.0
我是Ruby,Rails,ActiveRecord的新手。我很感激帮助。
试过了。但是当我用pluck使用find_by时,它会返回以下错误。 NoMethodError:undefined方法'pluck'为# 另外,如果我不得不通过student_id查询,而且还需要class_id? –
liquorishe
你说得对。我更新了我的答案。如果你有多个条件,你可以传递一个包含多个键/值的散列到哪里。 'Grade.where(student_id:123,class_id:234)' – Ursus
谢谢,这工作! :) 顺便说一句,我从查询中得到的结果是以数组的形式存在,就像这样[[#<...>,#<...>]] 所以我做了[0] .map!(&到F)。不知道这是否是一种好的做法,但它的工作。 非常感谢你的帮助。对此,我真的非常感激。 – liquorishe