我陷入了一种情况,即兴报告无法改进,因为 IBM cognos 不支持任何类型的 DDL,包括在 Teradata 中创建易失性表。报告查询聚合并在列表中包含大约 5000 个值。我知道如何使用 UDF 和派生表修复 inlist 部分,但我想做一些类似于 Volatile 表的事情,我可以根据我的选择重新分配,而无需实际创建一个。所以我想告诉优化器的是“请加入这 3 个表并通过这个键组合重新分配它们”,然后加入查询的其余部分。我想知道创建一个连接这些“目标表”然后加入 DT 的派生表是否有助于创建这种效果
sel A.1, A.2, Sum ( C.1) , Sum ( D.1) , case when A.5 in ( In-list) then "string" else "string2" end , sum (...) more columns ...etc
from
A Join B on ____ join C on ______ Join D ____
过滤条件
我的方法基于表 CDE 在其线轴上倾斜的分析,我希望这发生在 1st A join C join D Join E 。它将由 A 的 PI 复制 CDE 重新分配 ....然后是连接的其余部分
sel < condition as before>
from
( sel < column list> from A Join C Join D join E --with respective Join conditions ) dt Join F on ___ Join G on____
所以我想要的是两件事
- 表连接顺序 第一个 ACDE 被连接
- 因此创建的 Dt 应该有一个基于其余维度的 PI,以便我可以确保星形连接