在尝试根据阿里巴巴MaxCompute中的键对值进行分组时遇到问题。之前,我在阿里云MaxCompute中使用过类似的查询,但现在却引发了错误。
例如,
SELECT * FROM table GROUP BY key;
它应该可以工作,但是会给我带来类似的错误
失败:ODPS-0130071:[1,8]语义分析异常-列 引用table.value应该出现在GROUP BY键中
任何人都可以帮助我了解为什么会发生此错误。
答案 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;