Quel est l'équivalent Vertica de crosstab
ou pivot table
trouvé dans PostgreSQL et d'autres SGBDR?Comment faire un tableau croisé dans Vertica
0
A
Répondre
1
Vertica n'est actuellement pas disponible (version 3.5.9 pour référence future). J'ai parlé avec un collègue et sa suggestion était de jouer avec "cross join".
L'autre option serait de distiller vos résultats aussi loin que vous le pouviez, puis d'exécuter un processus en dehors de la base de données (perl, Java, C#, etc) qui manipulait les données.
Vertica est toutefois ouvert aux demandes de fonctionnalités.
Je ne crois pas que ce sera disponible dans la prochaine version 4.0 non plus.
0
Vertica peut faire une croix-onglet à l'aide de la base syntaxe 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