微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于组合多列的 SQL 查询

如何解决用于组合多列的 SQL 查询

我正在 AWS Athena 中用 sql 编写查询,但在某些情况下我无法弄清楚查询

假设我有这种格式的数据。

enter image description here

我想要我的表格采用这种格式。

enter image description here

有没有办法为此编写SQL查询。提前致谢。

解决方法

一种方法是union all

select name,idaction_url as idaction
from t
union all
select name,idaction_name
from t
union all
select name,idaction_content_interaction
from t;
,

不确定这是否是更好的选择,但您可以将所需字段转换为数组,然后取消嵌套:

WITH dataset AS (
    SELECT *
    FROM (VALUES
        ('a',10,11),('b',20,21)) AS t (user_id,idaction_1,idaction_2))


SELECT user_id,idaction
FROM (
    SELECT user_id,ARRAY[idaction_1,idaction_2] arr
    FROM dataset)
CROSS JOIN UNNEST(arr) as tmp(idaction)
user_id idaction
10
11
b 20
b 21

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。