我有以下兩個表格計算百分比使用活動記錄查詢
用戶
UserID UserName UserCountry 1 User1 India 2 User2 India 3 User3 India 4 User4 China 5 User5 China 6 User6 Brazil 7 User7 Brazil 8 User8 USA 9 User9 USA 10 User10 USA
狀態
UserID UserStatus 1 Active 2 Active 3 Inactive 4 Inactive 5 Dormant 6 Dormant 7 Active 8 Inactive 9 Active 10 Active
我要查詢這些表和計算的百分比活躍用戶按國家安排。在這個例子中的輸出應該
Country Percentage India 66.66% China 0.00% Brazil 50.00% USA 66.66%
使用下面的查詢,我能提取分子和百分比分別公式的分母,但不知道如何從這裏着手。如果有人能夠建議如何在單個查詢中提取所需的輸出,那將是最好的。
@active_user = Status.where(UserStatus: 「Active」).pluck(:UserID)
@active_user_bycountry = User.group(:UserCountry).where(UserID: @user_active.to_a).count(:UserID)
@total_user_bycountry = User.group(:UserCountry).count(:UserID)
我已經徹底搜索過SO和Google,但還沒有找到任何合適的答案。答案是Difficulty with ActiveRecord query that does percentage calculation,但即使這樣也不適合我。
你爲什麼有狀態的單獨的表? – Strawberry
@Strawberry在完整的狀態表中,除了上面提到的之外,我們還有其他用戶狀態。例如。用戶ID 1是活動的也是默認的。但是,即使它在同一個表中,我的查詢的解決方案是什麼。 – AndEnthu