我忘记在从SELECT语句在HIVE中创建表时为派生列指定别名。
CREATE TABLE temp AS (SELECT date, count(distinct(id)) FROM some_table GROUP BY date);
现在我想在派生列上使用过滤器查询新创建的临时表,我不想删除该表并再次使用派生列的别名运行相同的查询。
如何过滤列数(distinct(id)),或重命名该列?
答案 0 :(得分:1)
您可以使用Maybe.fromCallable(() -> fitClass.getAid())
.switchIfEmpty(service.getReservedClasses(FitHelper.clientId)
.flatMap(reservedClasses -> {
// ....
return fitClass.getAid());
}))
.flatMap(id -> service.unbookClass(id))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(...);
:
DESCRIBE
然后只需重命名列:
DESCRIBE temp;
col1 string
_c1 bigint
或使用ALTER TABLE temp CHANGE `_c1` `cnt` bigint;
列名:
_c1
答案 1 :(得分:0)
只需使用:
ALTER TABLE yourtable CHANGE `columnname` `newname` BIGINT;