蜂巢订单不工作

Posted

技术标签:

【中文标题】蜂巢订单不工作【英文标题】:Hive Order by Not working 【发布时间】:2015-01-07 09:59:58 【问题描述】:

查询:

没有功能的列:

从表排序 ACCOUNTID中选择ACCOUNTID

(上面的查询在 HIVE 和 mysql 中都能正常工作)

功能栏:

从表order by ACCOUNTID中选择concat('test_',ACCOUNTID)

在 mysql 中,上面的查询工作正常。

在 hive 中,抛出以下异常

失败:SemanticException [错误 10004]: 第 1:59 行无效的表别名或列引用“ACCOUNTID”: (可能的列名是:_c0)

Mysql:

排序方式与函数中涉及的列一起工作

蜂巢:

Order by 与函数中涉及的列一起使用

临时解决方案:

从表 order by tempcolumn 中选择 concat('test_',ACCOUNTID) as tempColumn

如果不将 column 指定为 tempcolumn ,是否有任何可用的解决方案?

注意:

我只想要连接结果(test_ACCOUNTID).. 而不将 ACCOUNTID 暴露为另一列

【问题讨论】:

【参考方案1】:

也许你也可以选择 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;

【讨论】:

【参考方案2】:

取决于您要达到的目标。如果您希望您的串联结果按 account id 的顺序出现,那么您可以在投影列表中公开 ACCOUNTID

SELECT concat('test_',ACCOUNTID), ACCOUNTID FROM <table> ORDER BY ACCOUNTID

【讨论】:

我只想要连接结果(test_ACCOUNTID).. 而不将 ACCOUNTID 暴露为另一列。【参考方案3】:

据我所知,这是将别名用于函数表达式并使用“分组依据”、“排序依据”、“排序依据”等子句的唯一方法。

【讨论】:

以上是关于蜂巢订单不工作的主要内容,如果未能解决你的问题,请参考以下文章

Maximo Anywhere - 离线工作订单规范

插入蜂巢表不起作用

2019工作计划idea

聚合后用蜂巢表读取和写入

蜂巢获取每个月的结束日期

canvas2d:cancelAnimationFrame 不工作