代码之家  ›  专栏  ›  技术社区  ›  Hüseyin

功率BI关系(如果在范围内)

  •  0
  • Hüseyin  · 技术社区  · 5 年前

    我有一张表(表a)(实际大小超过1亿条记录)

    身份证件 名称
    90 A.
    110 B

    另一个(表B)

    艾德敏 麦克斯 猫
    80 100 第一类
    102 115 第二类

    我想在POWER BI中为建模创建这些表之间的关系。一定是这样;如果(表A)ID介于ID_最小值和ID_最大值之间。

    我可以用sql轻松地完成它,比如。。。关于ID>=ID_MIN和ID<=麦克斯

    但在权力领域,没有这样的选择。

    而且我不想在事实表中创建带有join的列,因为它非常大。

    你们需要知道,对于真实的表B,有更多的列,我想在我的数据模型中看到它们。

    有什么想法吗?

    0 回复  |  直到 5 年前
        1
  •  0
  •   OscarLar    5 年前

    这可以通过测量或计算列(在表a中)来完成

    测量

    ID_CAT = 
    var thisID = MAX('Table_A'[ID])
    
    return  
    CALCULATE(
        MAX('Table_B'[CAT]),
        'Table_B'[ID_MIN] <= thisID,
        'Table_B'[ID_MAX] >= thisID
    )
    

    然后在可视化表格中,从“table_a”中添加[ID],然后添加此度量。

    或者可以在表a中创建一个计算列,如下所示:

    CAT_COLUMN = 
    var thisID = [ID]
    var temptab = 
    FILTER(
        'Table_B',
        'Table_B'[ID_MIN] <= thisID &&
        'Table_B'[ID_MAX] >= thisID
    )
    
    return
    CALCULATE(
        MAX('Table_B'[CAT]);
        temptab
    )
    
        2
  •  0
  •   Hüseyin    5 年前

    我找到了一个方法。我在表a中创建了一列,在表B中创建了S_ID(unique)列。filteleme列;

    filtreleme=MAXX(FILTER('Table(4)')、previous('Table'[ID])>='表(4)“[Min_id]&&早期('Table'[ID])<='表(4)“[Max_id],”表(4)[S_id])

    然后,我使用filtreleme和S_ID创建了表A和表B之间的关系,然后解决了这个问题。