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刪除