【发布时间】:2018-08-22 23:11:19
【问题描述】:
我有一个名为 property_audit_version_histories 的表。 我正在使用以下代码获取记录
@version_logs = PropertyAuditVersionHistory
.includes(:property_audit_version, :user)
.where(property_audit_version_id: params[:id])
结果包含3条记录,其中2条action和user_id相同 现在我需要使用列操作 user_id 对记录进行分组
当我尝试对记录进行分组时出现以下错误
@version_logs = PropertyAuditVersionHistory
.includes(:property_audit_version, :user)
.where(property_audit_version_id: params[:id])
.group("action, user_id")
PG::GroupingError: ERROR: column "property_audit_version_histories.id" must appear in the GROUP BY clause or be used in an aggregate function
@version_logs = PropertyAuditVersionHistory
.includes(:property_audit_version, :user)
.group("property_audit_version_histories.id")
.where(property_audit_version_id: params[:id])
.group("action, user_id")
现在错误消失了,但结果仍然是 3 条记录。分组后,我预计只有 2 条记录。
知道如何解决这个问题吗?
【问题讨论】:
-
您可以从日志中添加结果查询吗?
-
SELECT "property_audit_version_histories".* FROM "property_audit_version_histories" WHERE "property_audit_version_histories"."property_audit_version_id" = $1 GROUP BY property_audit_version_histories.id, action, user_id [["property_audit_version_id", 44]]