我使用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)]
非常感谢任何帮助。
答案 0 :(得分: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)]
这足以为具有相同维度值的多行获取一个值。