1
在我的Rails應用程序5,我用它採用了jsonb場(稱爲properties
),我不知道如何查詢Ahoy gem。導軌 - 查詢JSON場
數據在properties
領域的一個樣本:
"{\"id\":\"11\"}"
我試圖做的是:
- 發現在過去七天內創建的記錄(使用
time
場) - 將
id
中的記錄分組在properties
字段中 - 根據wh命令記錄ICH
id
有最記錄
我嘗試這樣做:
@foo = Ahoy::Event.where(name: "Viewed Product").where(time: 7.days.ago..Time.now).group("properties(id)").order('COUNT("properties(id)") DESC')
,但我收到的錯誤,PG::UndefinedColumn: ERROR: column "properties(id)" doe not exist
我發現這somewhat similar question在創業板的問題,所以我嘗試打破查詢到的部分:
@foo = Ahoy::Event.where(name: "Viewed Product").where(time: 7.days.ago..Time.now)
@foo.group("properties REGEXP '[{,]\"id\"...).count
但後來我的IDE給出了錯誤unterminated string meets the end of file
。
是否有人可以幫助我確定我做錯了什麼?
是的,我看到一個帖子提的是。當我想,我收到'PG :: GroupingError:錯誤:列「ahoy_events.id」必須出現在GROUP BY子句或聚集function' – yellowreign
這是可以理解使用。詳情請查看此鏈接(http://bernardoamc.github.io/sql/2015/05/04/group-by-non-aggregate-columns/)。您可能希望根據您的用例修改您的查詢。然而,在任何情況下,你將不得不使用'''性能 - >>「id''''如果您計劃在jsonb欄查詢。 –