1
假設我有一個整數列爲no_of_units
和average_revenue_per_unit
的表格。要獲得任意一行的總收入,我只需要計算no_of_units * average_revenue_per_unit
- 很簡單。但是如果我想計算整個表的總收入呢?使用ActiveRecord查詢獲得一列乘以另一列的總和
最顯而易見的方法是:
total_no_of_units = TableName.sum(:units)
overall_average_revenue = TableName.average(:revenue_per_unit)
total_revenue = total_no_of_units * overall_average_revenue
但不必使用兩個單獨的SQL查詢感覺噁心。有沒有辦法只用一個鏈接的ActiveRecord查詢呢?或者我可以(也應該)使用原始SQL執行此操作嗎?
編輯:我剛剛意識到我的上述示例代碼是錯誤的! overall_average_revenue
是revenue_per_unit
列中所有整數的平均值......但這與實際的單位平均收入不同,因爲不同的行具有不同的單位數。我需要一個加權平均值。回到繪圖板...
這是我原來的問題的正確答案......但我剛剛意識到我的問題是有缺陷的,這並沒有給實際的平均收入! (請參閱我的編輯問題)。無論如何,請有一個upvote ... – GMA