Postgresql 栏「;“由”创建;必须出现在GROUP BY子句中或在聚合函数中使用

Postgresql 栏「;“由”创建;必须出现在GROUP BY子句中或在聚合函数中使用,postgresql,group-by,left-join,Postgresql,Group By,Left Join,请帮助解决此查询 select ard.rule_name,ard.created_by,ard.modified_by,ard.desc,ard.audit,ard.active,ard.raw_json,json_object_agg(asm.name, (asm.description, asm.keys)) as event_class_details , ard.error,ard.advanced,ard.rule_string,ard.remediation,ard.auto_as

请帮助解决此查询

select ard.rule_name,ard.created_by,ard.modified_by,ard.desc,ard.audit,ard.active,ard.raw_json,json_object_agg(asm.name, (asm.description, asm.keys)) as event_class_details , ard.error,ard.advanced,ard.rule_string,ard.remediation,ard.auto_assign,ard.auto_assign_to,ard.test_rule,ard.severity,ard.time_occurrence,ard.created_on,ard.modified_on, ard.source_ids from alert_rule_definition as ard left join  alert_source_mapping as asm on ( (ard.advanced = True and asm.source_id = ANY(ard.source_ids)) or (asm.source_id = ard.source_id)) where ard.rule_name in ('win_user_created_by_otherthan_admin_windows_servers_3') group by ard.rule_name; 
它在执行时给出以下错误

column "ard.created_by" must appear in the GROUP BY clause or be used in an aggregate function

您需要添加聚合函数中未使用的每一列 在查询中,除了asm.name、asm.description和asm.keys。 其余列应显示在GROUPBY子句中 请尝试以下方法:

select ard.rule_name, ard.created_by, ard.modified_by, ard.desc, 
       ard.audit,ard.active,ard.raw_json,
       json_object_agg(asm.name, (asm.description, asm.keys)) as event_class_details, 
       ard.error, ard.advanced, ard.rule_string, ard.remediation, 
       ard.auto_assign, ard.auto_assign_to, ard.test_rule, ard.severity, 
       ard.time_occurrence, ard.created_on, ard.modified_on, 
       ard.source_ids 
  from alert_rule_definition as ard 
  left join alert_source_mapping as asm on ((ard.advanced = True and asm.source_id = ANY(ard.source_ids)) or (asm.source_id = ard.source_id))
 where ard.rule_name in ('win_user_created_by_otherthan_admin_windows_servers_3') 
 group by ard.rule_name, ard.created_by, ard.modified_by, ard.desc, ard.audit, ard.active, ard.raw_json, ard.error, ard.advanced, ard.rule_string,       ard.remediation, ard.auto_assign, ard.auto_assign_to, ard.test_rule, ard.severity, ard.time_occurrence, ard.created_on, ard.modified_on, ard.source_ids

你好。这是一个常见问题。请总是用谷歌搜索你的问题/问题/目标的许多清晰、简洁和具体的版本/措辞,有或没有你的特定字符串/名称,并阅读许多答案。将发现的相关关键字添加到搜索中。如果你找不到答案,那么发布,使用一种变体搜索你的标题和标签的关键字。可能重复