0

尝试根据阿里巴巴 MaxCompute 中的键对值进行分组时遇到问题。我之前在阿里云 MaxCompute 中使用过类似的查询,但现在它抛出了一个错误。

例如,

SELECT * FROM table GROUP BY key;

它应该可以工作,但它会给我带来错误,例如

FAILED: ODPS-0130071:[1,8] 语义分析异常 - 列引用 table.value 应该出现在 GROUP BY 键中

任何人都可以帮助我了解为什么会发生此错误。

4

1 回答 1

0

在 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;
于 2018-11-21T19:34:17.023 回答