1
我正在構建一個求職者追蹤他們對使用Rails感興趣的工作的系統。我想根據用戶對公司感興趣的級別對公司進行排名,這取決於公司發佈的每個職位中用戶聲明的「興趣水平」的平均值。因此,例如,沃爾瑪可能會發布3份工作,並且用戶將提交他們對每項工作的興趣水平,並且我們通過對這3個興趣水平進行平均來計算沃爾瑪的整體興趣。將有幾個公司有幾個工作。ActiveRecord:基於協會列平均值的訂單表
我的數據庫有2個表:公司和工作,公司有很多工作,有一個公司有一個工作。一份工作還有一個'level_of_interest'屬性,應該用來計算用戶對公司的總體興趣。
有沒有辦法使用ActiveRecord方法來做到這一點?我目前的解決辦法是:
Job.group('company_id').average(:level_of_interest)
,然後使用Ruby來公司拉出來的結果散列的,但我覺得可能有辦法用ActiveRecord做純粹。
DB是PG,fwiw。
我得到的是邏輯,但它不工作,我的SQL知識是沒有強大到足以解決問題。這是錯誤: 'PG :: GroupingError:錯誤:列「jobs.company_id」必須出現在GROUP BY子句中或用於聚合函數中 LINE 1:SELECT jobs.company_id,avg(jobs.level_of_interest)FROM 「co ...' – samlandfried
@Landfried:我編輯了上面的例子 - 看看它是否適合你:-) – gwcodes
就是這樣!謝謝。 – samlandfried