如何根据阿里巴巴MaxCompute中的键对值进行分组?

时间:2018-11-21 16:54:19

标签: hadoop hive alibaba-cloud

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

例如,

SELECT * FROM table GROUP BY key;

它应该可以工作,但是会给我带来类似的错误

  

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

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

1 个答案:

答案 0 :(得分:0)

在早期版本的MaxCompute中,即使GROUP BY键中不包含与*匹配的列,也支持select * from group by key。与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;