S02022

错误代码

S02022

报错信息

The column [xxx] must use aggregate function. RefId:S02022

错误原因

在 group by 查询中,要求每个分组中各列对应的结果只有1个,因此,大部分情况下,select 子句需要使用聚合函数将同一个分组中某列的多行数据映射为一行,否则会导致该报错。如下例:

id = `XOM`GS`AAPL
val = 102.1 33.4 73.6
date = 2020.01.01 2020.01.02 2020.01.01
t = table(id, val, date);

// 根据 id 分组后,val 列在每个分组中的数据行数都是1,满足 group by 查询要求,能正常执行
select val from t group by id // allow
// 根据 date 分组后,2020.01.01 分组中 val+1 的结果有2个,不满足 group by 查询要求,执行报错
select val + 1 from t group by date // error

解决办法

当使用 group by 子句时,检查脚本中 select 指定的各列是否都使用了聚合函数。