如何在alibaba maxcompute中基于键对值进行分组?

rekjcdws  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(269)

我在尝试根据alibaba maxcompute中的键对值进行分组时遇到了问题。我以前在阿里云maxcompute中使用过类似的查询,但现在它给了我一个错误。
例如,

SELECT * FROM table GROUP BY key;

它应该工作,但它给我的错误像
失败:odps-0130071:[1,8]语义分析异常-列引用表。值应按键出现在分组中
任何人都可以帮助我理解为什么会发生这种错误。

wgeznvg7

wgeznvg71#

在早期版本的maxcompute中, select * from group by key 即使匹配*的列不包括在group by键中,也支持。与hive兼容,maxcompute2.0禁止这种语法,除非groupby列表是所有源表中的一列
示例:
场景1:groupby键不包括所有列。
语法错误:

SELECT * FROM t GROUP BY key;

正确语法:

SELECT DISTINCT key FROM t;

场景2:groupby键包含所有列。
不推荐的语法:

SELECT * FROM t GROUP BY key, value; -- t has columns key and value

建议语法:

SELECT DISTINCT key, value FROM t;

相关问题