PostgreSQL 和其他 RDBMS 中的 Vertica 等价物是crosstab
什么?pivot table
问问题
4922 次
2 回答
1
Vertica 目前(版本 3.5.9 以供将来参考)不具备该功能。我与一位同事交谈,他的建议是玩“交叉连接”。
另一种选择是尽可能地提取结果,然后在操作数据的数据库(perl、Java、C# 等)之外运行一个进程。
但是,Vertica 对功能请求持开放态度。
我不相信这将在即将发布的 4.0 版本中提供。
于 2010-03-25T21:08:59.783 回答
0
Vertica 可以使用基本的 sql-92 语法进行交叉表:
select
DIM1
,DIM2
,DIM3
,SUM(MEASURE1)
,SUM(MEASURE2)
,SUM(MEASURE3)
from
(select
DIM1
,DIM2
,DIM3
,MAX(CASE WHEN MEASURE = 'MEASURE1' then MEASURE1_VALUE else null end) MEASURE1
,MAX(CASE WHEN MEASURE = 'MEASURE2' then MEASURE2_VALUE else null end) MEASURE2
,MAX(CASE WHEN MEASURE = 'MEASURE3' then MEASURE3_VALUE else null end) MEASURE3
from SOME_TABLE
group by DIM1, DIM2, DIM3
) as a
group by DIM1, DIM2, DIM3
于 2010-10-19T16:15:11.093 回答