【问题标题】:How to add a new column in a view?如何在视图中添加新列?
【发布时间】:2021-12-29 10:38:23
【问题描述】:

我有这样的看法:

CREATE VIEW VW_my_table_test AS
select
extract_dt,
path,
split_part(`path`, '/', 5) `DataBAse`,
modificationtime,
to_timestamp(accesstime, 'yyyy-MM-dd HH:mm') as accesstime ,
"replication",
datediff(from_unixtime(unix_timestamp(now()),'yyyy-MM-dd'),to_timestamp(accesstime, 'yyyy-MM-dd HH:mm'))AS QT_DIAS_SEM_ACESSO,
CASE WHEN datediff(from_unixtime(unix_timestamp(now()),'yyyy-MM-dd'),to_timestamp(accesstime, 'yyyy-MM-dd HH:mm')) < 31 then '1' ELSE '0' END AS IN_INF_HOT_ACESSO,
CASE WHEN datediff(from_unixtime(unix_timestamp(now()),'yyyy-MM-dd'),to_timestamp(accesstime, 'yyyy-MM-dd HH:mm')) > 30 and datediff(from_unixtime(unix_timestamp(now()),'yyyy-MM-dd'),to_timestamp(accesstime, 'yyyy-MM-dd HH:mm')) < 121 then '1' ELSE '0' END AS IN_INF_COLD_ACESSO,
CASE WHEN datediff(from_unixtime(unix_timestamp(now()),'yyyy-MM-dd'),to_timestamp(accesstime, 'yyyy-MM-dd HH:mm')) > 120 then '1' ELSE '0' END AS IN_INF_FROZEN_ACESSO,
CASE WHEN datediff(from_unixtime(unix_timestamp(now()),'yyyy-MM-dd'),to_timestamp(modificationtime, 'yyyy-MM-dd HH:mm')) < 31 then '1' ELSE '0' END AS IN_INF_HOT_MODIFICACAO,
CASE WHEN datediff(from_unixtime(unix_timestamp(now()),'yyyy-MM-dd'),to_timestamp(modificationtime, 'yyyy-MM-dd HH:mm')) > 30 and datediff(from_unixtime(unix_timestamp(now()),'yyyy-MM-dd'),to_timestamp(accesstime, 'yyyy-MM-dd HH:mm')) < 121 then '1' ELSE '0' END AS IN_INF_COLD_IN_INF_HOT_MODIFICACAO,
CASE WHEN datediff(from_unixtime(unix_timestamp(now()),'yyyy-MM-dd'),to_timestamp(modificationtime, 'yyyy-MM-dd HH:mm')) > 120 then '1' ELSE '0' END AS IN_INF_FROZEN_IN_INF_HOT_MODIFICACAO,

from_unixtime(unix_timestamp(now()),'yyyy-MM-dd')
from my_table_test

我想用以下复制代码添加一个新列:

datediff(from_unixtime(unix_timestamp(now()),'yyyy-MM-dd'),to_timestamp(accesstime, 'yyyy-MM-dd HH:mm'))AS QT_DIAS_SEM_MODIFICACAO,

但他返回错误:

AnalysisException: Table already exists: dbdl_sbox_dados.VW_my_table_test

我想过删除这个已经存在的表,但我不知道这是否是最好的方法。

我该怎么做?

【问题讨论】:

    标签: sql impala hue


    【解决方案1】:

    您可以使用更改视图。它更好,因为如果脚本不正确,它将失败。但是如果你在脚本中遗漏了一些东西并且不能快速解决问题,那么其他一些过程可能会失败。

    ALTER VIEW dbdl_sbox_dados.VW_my_table_test 
    AS
    SQL WITH NEW COL
    

    【讨论】:

      【解决方案2】:

      我设法使用 DROP 解决了这个问题:

      DROP VIEW VW_my_table_test
      

      然后我已经用更改运行了代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-10
        • 1970-01-01
        • 2019-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-29
        相关资源
        最近更新 更多