0

PostgreSQL 和其他 RDBMS 中的 Vertica 等价物是crosstab什么?pivot table

4

2 回答 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 回答