0

我使用 SQL 模型子句从数据库中获取一些数据。我有一个维度,其值对于多行是相同的(这没关系,应该会发生)。

我还有一个由所选主要尺寸标注的参考模型。我只想从参考模型中获取第一行结果的值。

一个更好地解释它的例子:

实际结果:

MAIN DIMENSION | Field 1 | Reference Model Field | Other fields...
    2013-01-01 |     100 |                     1 | Other values...
    2013-01-01 |     100 |                     1 | Other values...
    2013-01-01 |     100 |                     1 | Other values...
    2013-01-01 |     100 |                     1 | Other values...

我想收到什么:

MAIN DIMENSION | Field 1 | Reference Model Field | Other fields...
    2013-01-01 |     100 |                     1 | Other values...
    2013-01-01 |     100 |                0/null | Other values...
    2013-01-01 |     100 |                0/null | Other values...
    2013-01-01 |     100 |                0/null | Other values...

我在主模型中有 3 个维度,在参考模型中有 1 个维度,在规则部分我有:

ref_model_field[any, any, any] = REFERENCE.field[cv(main_dimension)]

任何帮助将非常感激。

4

1 回答 1

0

好的,我已经设法找到解决方案。当我记得当你在模型子句中使用时,这很容易partition by,规则是为每个分区实例计算的。所以我在主模型中添加了另一个维度,定义为:

row_number() over (partition by main_dimension order by some_other_field)

在规则定义中,我只需要计算新维度中第一个编号行的值:

ref_model_field[any, any, any, 1] = REFERENCE.field[cv(main_dimension)]

这足以为具有相同维度值的多行获取一个值。

于 2013-10-29T11:13:45.933 回答