如何解决用于组合多列的 SQL 查询
我正在 AWS Athena 中用 sql 编写查询,但在某些情况下我无法弄清楚查询。
假设我有这种格式的数据。
我想要我的表格采用这种格式。
有没有办法为此编写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 举报,一经查实,本站将立刻删除。