查询:
没有功能的列:
从表排序依据 ACCOUNTID 中选择ACCOUNTID;
(以上查询在 HIVE 和 MYSQL 中都可以正常工作)
具有功能的列:
从表order by ACCOUNTID中选择concat('test_',ACCOUNTID);
在 mysql 中,上述查询工作正常。
在配置单元中,抛出以下异常
失败:SemanticException [错误 10004]: 行 1:59 无效的表别名或列引用“ACCOUNTID”: (可能的列名称是:_c0)
MySQL:
排序方式与函数中涉及的列配合良好
hive :
排序依据不适用于函数中涉及的列
临时解决方案:
从表 order by tempcolumn 中选择 concat('test_',ACCOUNTID) as tempColumn;
是否有任何解决方案可以在不将列分配为 tempcolumn 的情况下使用?
注意:
我想要单独的串联结果(test_ACCOUNTID)..而不将 ACCOUNTID 公开为另一列
最佳答案
也许您还可以选择 accountid 列进行排序。
SELECT accountid,concat('test_',ACCOUNTID) from table order by accountid;
或者,将“concat('test_', accountid) ”重命名为 accountid,如下所示:
SELECT concat('test_',ACCOUNTID) accountid from table order by accountid;
关于mysql - Hive 订单不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27816800/