gpt4 book ai didi

sql - AWS Redshift : columns into rows (wide to long)

转载 作者:行者123 更新时间:2023-12-04 21:44:37 25 4
gpt4 key购买 nike

我正在编写一个查询,其结果将在 redash 上显示为仪表板。查询基本上是特定时间范围内几列表的总和:

SELECT
sum(col_A),
sum(col_B),
sum(col_C)
FROM
table_X
WHERE
timestamp > '2018-01-01'
AND timestamp < '2018-02-01'

结果是这样的:
col_A    col_B    col_C    
123 456 789

但是,要在 redash 上正确呈现 dasboard,我需要长格式的结果:
column   sum
col_A 123
col_B 456
col_C 789

如何将结果从宽格式转换为长格式?

最佳答案

一个简单的方法是使用 union all :

SELECT sum(col_A) FROM table_X WHERE timestamp > '2018-01-01' AND timestamp < '2018-02-01'
UNION ALL
SELECT sum(col_B) FROM table_X WHERE timestamp > '2018-01-01' AND timestamp < '2018-02-01'
UNION ALL
SELECT sum(col_C) FROM table_X WHERE timestamp > '2018-01-01' AND timestamp < '2018-02-01';

您可能需要小心订购。我将包括第二列,指定正在聚合的内容。

三个单独的查询并不像听起来那么糟糕。 Redshift 是一个列式数据库,因此应该只读取列引用。

关于sql - AWS Redshift : columns into rows (wide to long),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48956567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com