MISSING_AGGREGATION错误类

SQLSTATE: 42803

非聚合表达式<表达式>基于列不参与GROUP BY子句。

列或表达式添加到组,总表达,或者使用< expressionAnyValue >如果你不关心在一组返回的值。

参数

  • 表达式:非聚合,非分组表达式选择列表。

  • expressionAnyValue:表达式包装在一个any_value()聚合函数。

解释

在上下文的一个查询集团条款,当地列引用选择列表必须:

  • 作为一个参数使用聚合函数,或

  • 一个表达式匹配一个表达式的一部分集团通过条款。

当地的一个列引用是一个列,已经解决表引用在查询的条款。

换句话说:列引用必须是分组关键字的一部分,或者他们必须集合的一部分。

砖匹配的表情最大的努力:例如,它将识别:选择c1+5T集团通过5+c1作为数学表达式。但选择c1T集团通过c1+5不是一个匹配。

缓解

错误的减排取决于原因:

  • 你错过一个分组列吗?

    添加表达式,或者相关的子表达式表达式集团通过条款。

  • 列引用部分吗集团通过表达的不同于有专家吗?

    匹配的表达式选择列表或简化集团通过表达式。

  • 你错过了聚合吗?

    包装一个聚合函数的列引用。如果你只希望集团的代表值,您可以使用any_value(言论)

例子

——样本数据>创建取代临时视图任务(的名字,firstname,任务,成本)作为(“史密斯”,“山姆”,“透视”,10),(“史密斯”,“山姆”,“横向”,5),(•舒斯特的,“莎莉”,“删除”,7),(•舒斯特的,“莎莉”,“授予”,8);——“名称”和“firstname”由coumns集团的一部分,但不完整>选择的名字,firstname,总和(成本)任务集团通过firstname| |' '| |的名字;(MISSING_AGGREGATION]表达式“名称”既不现在集团通过,也不一个函数——GROUP BY表达式相匹配>选择firstname| |' '| |的名字,总和(成本)任务集团通过firstname| |' '| |的名字;山姆史密斯15莎莉•舒斯特15——分手GROUP BY表达式>选择firstname,的名字,总和(成本)任务集团通过firstname,的名字;山姆史密斯15莎莉•舒斯特15——丢失分组列>选择的名字,firstname,总和(成本)任务集团通过的名字;(MISSING_AGGREGATION]表达式“firstname”既不现在集团通过,也不一个函数——添加分组列>选择firstname,的名字,总和(成本)任务集团通过firstname,的名字;山姆史密斯15莎莉•舒斯特15——失踪总>选择firstname,的名字,总和(成本),任务任务集团通过firstname,的名字;(MISSING_AGGREGATION]表达式“任务”既不现在集团通过,也不一个函数——添加一个总>选择firstname,的名字,总和(成本),array_agg(任务)任务集团通过firstname,的名字;山姆史密斯15(“透视”,“横向”]莎莉•舒斯特15(“删除”,“授予”]——返回任何任务>选择firstname,的名字,总和(成本),any_value(任务)任务集团通过firstname,的名字;山姆史密斯15横向莎莉•舒斯特15删除