简体   繁体   English

如何在 Athena 中使用 CONVERT function。 错误:无法解析列“bigint”

[英]How to use CONVERT function in Athena. Error: Column 'bigint' cannot be resolved

In AWS athena when I use the convert function I keep getting the following error在 AWS 雅典娜中,当我使用转换 function 时,我不断收到以下错误

select convert(bigint,(split_part(address,'.',1))) 
     + convert(bigint,(split_part(address,'.',2))) as sum 
from table

Error code: SYNTAX_ERROR: line 2:9: Column 'bigint' cannot be resolved错误代码:SYNTAX_ERROR:第 2:9 行:无法解析列“bigint”

for example value of address is 11.22 and so I would like to return 11 and 22 as bigint and 33 as sum.例如,地址的值为 11.22,所以我想将 11 和 22 作为 bigint 返回,将 33 作为总和返回。 Does anyone have a fix for this?有没有人可以解决这个问题? I am stuck我被困住了

Use CAST使用CAST

SELECT 
      CAST(split_part('11.22','.',1) AS INTEGER) 
    + CAST(split_part('11.22','.',2) AS INTEGER) AS sum

A cleaner and scalable solution can use regexp_extract_all and reduce更清洁且可扩展的解决方案可以使用regexp_extract_all减少

SELECT reduce(regexp_extract_all('11.22', '\d+'), 
              0, 
              (s, x) -> CAST(s AS INTEGER) + CAST(x AS INTEGER), 
              s -> s)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM