我看到了几个答案,但没有找到能帮助我的内容。
我有一个模型,其中包含一个“country”列和一个“city”列。
在进行一些SQL查询时,我想要将一个按国家分组的查询添加到该查询中,并且对于每个国家,再按城市进行分组。
但我遇到问题。
我有一个模型,其中包含一个“country”列和一个“city”列。
在进行一些SQL查询时,我想要将一个按国家分组的查询添加到该查询中,并且对于每个国家,再按城市进行分组。
Model.where("name LIKE ?", "%#{query}%").group(["country", "city"])
但我遇到问题。
PG::GroupingError: ERROR: column "models.id" must appear in the GROUP BY clause or be used in an aggregate function
我不确定该怎么做,因为我不想按ID分组,只想按国家和城市分组
我确定我错过了什么,但不确定是什么
使用建议的字段
Model.where("name LIKE ?", "%#{query}%").group("country, city").select("country, city")
仍然出现相同的错误
Model.where("name LIKE ?", "%#{query}%").group("country, city").select("name, city")
。当你使用group by
时,在任何数据库中,你必须在select
子句中使用你在group by
子句中使用的列。 - Arup RakshitModel.where("name LIKE ?", "%#{query}%").group(["country", "city"]).select("id")
,我仍然得到相同的错误。 - Nick Ginantoselect
,然后是where
,最后是group
,例如:Model.select('country, city').where(...
- vee