rails 应用程序中的原始 pg GROUP BY 查询

Raw pg GROUP BY query in rails application

我想在 rails 控制台中执行这个非常简单的 SQL 查询。

SELECT name, manual_score FROM objectives GROUP BY manual_score

但它会抛出一个错误:

ActiveRecord::StatementInvalid: PG::GroupingError: ERROR:  column "objectives.name" must appear in the GROUP BY clause or be used in an aggregate function

我已尝试在 table 名称前加上列,但错误仍然存​​在。任何帮助都会得到帮助。谢谢!

问题是您列出的列不是 "grouped"。您应该将 name 添加到 GROUP BY 或将其从 select.

中删除
SELECT name, manual_score FROM objectives GROUP BY name, manual_score
-- OR
SELECT manual_score FROM objectives GROUP BY manual_score
-- OR
SELECT COUNT(name), manual_score FROM objectives GROUP BY manual_score

为什么必须将列添加到 group by 或使用聚合函数?假设您有以下数据:

name       |  manual_score
one        |  1
two        |  1
three      |  2

现在,尝试按 manual_score 对元素进行分组,并思考如何显示 name 对应于 manual_score=1 的列。