Redshift SQL:将行交换并聚合到列
Redshift SQL: swap and aggregate row to column
这是 Redshift 中的 table T1:
我正在尝试创建一个查询来以下列方式表示它:
构建查询的最佳方式是什么。输入 table 是在另一个 SQL 查询中动态创建的,该查询的结果集不会很小——比如 400 到 500 行/3 列。
非常感谢任何提示、建议或解决方案。
您可以使用条件聚合:
select item,
sum(case when period = 'Q1' then counts end) as Q1,
sum(case when period = 'Q2' then counts end) as Q2,
sum(case when period = 'Q3' then counts end) as Q3
from t
group by item;
如果您想要行总计,只需在 Q3
之后添加 sum(counts)
。
这是 Redshift 中的 table T1:
我正在尝试创建一个查询来以下列方式表示它:
构建查询的最佳方式是什么。输入 table 是在另一个 SQL 查询中动态创建的,该查询的结果集不会很小——比如 400 到 500 行/3 列。
非常感谢任何提示、建议或解决方案。
您可以使用条件聚合:
select item,
sum(case when period = 'Q1' then counts end) as Q1,
sum(case when period = 'Q2' then counts end) as Q2,
sum(case when period = 'Q3' then counts end) as Q3
from t
group by item;
如果您想要行总计,只需在 Q3
之后添加 sum(counts)
。