【发布时间】:2021-01-24 18:08:21
【问题描述】:
我在 presto 上有一个包含多条记录的表。从那条记录中,我使用了这个简单的 SQL 查询,
select id, data from my_table where id IN (1,7)
这是我从那个查询中得到的,
id data
1 ('A', 0.0, 12)
7 ('B', 0.0, 20) ('A', 0.0, 30) ('C', 0.0, 40)
现在我想将这个数据列设置为多行,如下所示,基本上,将单列值拆分为多行。
name value age
A 0.0 12
B 0.0 20
A 0.0 30
C 0.0 40
到目前为止我已经尝试过,但在 presto 上出现错误
SELECT data
FROM my_table
CROSS APPLY STRING_SPLIT(data, ' ') where id IN (1,7);
我的想法是用空格分割列值,然后用逗号再次分割以在最后形成多列。似乎我需要使用来自here 的split() 和split_part(),但我无法让它工作。请告诉我该怎么做?
【问题讨论】:
-
data列的类型是什么? -
它是一个字符串类型的列@MartinTraverso 先生
-
我已经尝试了以下答案,但它不适用于
('B', 0.0, 20) ('A', 0.0, 30) ('C', 0.0, 40)、@PiotrFindeisen,如果您不介意先生,您能给我一个答案/示例吗?
标签: sql join presto amazon-athena