gpt4 book ai didi

sql - 使用 Amazon RedShift 透视表

转载 作者:行者123 更新时间:2023-12-04 20:53:17 25 4
gpt4 key购买 nike

我在 Amazon RedShift 中有几个表,它们遵循多个维度列和一对指标名称/值列的模式。

DimensionA  DimensionB  MetricName  MetricValue
---------- ---------- ---------- -----------
dimA1 dimB1 m1 v11
dimA1 dimB2 m1 v12
dimA1 dimB2 m2 v21
dimA2 dimB2 m1 v13
dimA3 dimB1 m2 v22

我正在寻找一种好方法来将数据展开/旋转为每个唯一维度集一行的形式,例如:
DimensionA  DimensionB  m1   m2 
---------- ---------- --- ---
dimA1 dimB1 v11
dimA1 dimB2 v12 v21
dimA2 dimB2 v13
dimA3 dimB1 v22

生成执行此展开的查询的好模式是什么?

Amazon RedShift 基于 ParAccel 并支持 PostgreSQL 8.0.2,它没有 crosstab , unnest , pivotunpivot .

最佳答案

您可以为每个 MetricName 创建一个 CASE 语句,但您还必须使用聚合来使 GROUP BY 工作。

SELECT dimension_a
,dimension_b
,MAX(CASE WHEN metric_name = 'm1' THEN metric_value ELSE NULL END) m1
,MAX(CASE WHEN metric_name = 'm2' THEN metric_value ELSE NULL END) m2
FROM my_table
GROUP BY dimension_a
,dimension_b
;

值得注意的是,Redshift 对象名称从不区分大小写,但列内容总是区分大小写,这与 SQL Server 默认值相反。

关于sql - 使用 Amazon RedShift 透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20650918/

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