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
的列。
我想在 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
的列。