尝试根据阿里巴巴 MaxCompute 中的键对值进行分组时遇到问题。我之前在阿里云 MaxCompute 中使用过类似的查询,但现在它抛出了一个错误。
例如,
SELECT * FROM table GROUP BY key;
它应该可以工作,但它会给我带来错误,例如
FAILED: ODPS-0130071:[1,8] 语义分析异常 - 列引用 table.value 应该出现在 GROUP BY 键中
任何人都可以帮助我了解为什么会发生此错误。
尝试根据阿里巴巴 MaxCompute 中的键对值进行分组时遇到问题。我之前在阿里云 MaxCompute 中使用过类似的查询,但现在它抛出了一个错误。
例如,
SELECT * FROM table GROUP BY key;
它应该可以工作,但它会给我带来错误,例如
FAILED: ODPS-0130071:[1,8] 语义分析异常 - 列引用 table.value 应该出现在 GROUP BY 键中
任何人都可以帮助我了解为什么会发生此错误。
在 MaxCompute 的早期版本中,select * from group by key
即使匹配 * 的列不包含在 GROUP BY 键中,也支持。兼容 Hive,MaxCompute 2.0 禁止这种语法,除非 GROUP BY 列表是所有源表中的列
例子:
场景 1:GROUP BY 键不包括所有列。
不正确的语法:
SELECT * FROM t GROUP BY key;
正确的语法:
SELECT DISTINCT key FROM t;
场景 2: GROUP BY 键包括所有列。
不推荐的语法:
SELECT * FROM t GROUP BY key, value; -- t has columns key and value
推荐语法:
SELECT DISTINCT key, value FROM t;