首页 > 解决方案 > Athena 中带有 % 符号的列的数据类型

问题描述

我有一个 csv 文件,其中包含一个带有比率的列,因此文件中包含 % 符号。我想在 Athena 中的该文件上映射一个表,但我不知道如何处理该特定列。我一直在使用小数(10,0),但它不起作用。

标签: sqlcsvamazon-athena

解决方案


使用键入为字符串的列创建表,然后使用例如CAST(REPLACE(col, '%') AS double)/100删除 % 符号并将数值除以 100。

如果您想避免在每个查询中都这样做,您可以创建一个包含该操作的视图并针对该视图运行您的常规查询:

CREATE OR REPLACE VIEW the_rate_view AS
SELECT
  *,
  CAST(REPLACE(col, '%') AS double)/100 AS my_rate
FROM the_original_table

现在您可以使用the_rate_view与 相同的方式the_original_table,但也可以使用my_rate将百分比转换为比率的列。


推荐阅读