从大括号 SQL 中提取值



我正在尝试弄清楚如何从Prestosql列中的大括号中提取值。

该字段如下所示,

rates
{"B":750}
{"B":1600}
{"B":900}

我只想提取每个括号中的数字值。另外,如果我想将其除以 10 然后除以 20,这是否很容易添加到查询中?

rates列的类型为 map(varchar, bigint)

由于rates列的类型为 map(varchar, bigint) .您可以在其上使用Presto Map Functions和Operator。例子:

SELECT rates['B'] FROM ... -- value under key "B"
SELECT map_values(rates) FROM ... -- all values in a map

在 Presto 文档中查看更多信息。

使用这样的东西,其中 regexp_extract 函数从字符串中提取数字,cast 函数将其从字符串转换为数字,然后您可以继续除以 10 等。

select cast(regexp_extract(rates, 'd+') as double) / 10
from my_table

相关内容

  • 没有找到相关文章

最新更新