【问题标题】:Create new column as per value in another column in SQL/powerBI根据 SQL/powerBI 中另一列中的值创建新列
【发布时间】:2020-12-17 13:59:24
【问题描述】:

我有一个像这样的数据集:

ID    TYPE  POM   POM_new
1234   sys   100   100
1234   pm    101   100
2345   pm    300   302
2345   sys   302   302

如上所述,我想创建新列 (POM_new)。新列应采用基于 TYPE 字段的“POM”字段值,即“sys”。

我想在 SQL(HANA) 或 Powerbi 中执行此操作。尝试使用以下代码但没有成功。

POM New = CALCULATE(MAX(tablename[POM]),FILTER(LPR,tablename[TYPE]="SYS"),ALLEXCEPT(LPR,tablename[ID]))

【问题讨论】:

    标签: sql powerbi hana


    【解决方案1】:

    您可以使用标准的 SQL 解析功能如下:

    SELECT ID, TYPE, POM, 
           MIN(CASE WHEN TYPE = 'sys' THEN POM END) OVER (PARTITION BY ID) AS POM_NEW
      FROM YOUR_TABLE T;
    

    【讨论】:

    • 很好用。感谢您的学习。
    【解决方案2】:

    如果您正在寻找度量,请使用以下代码-

    POM_new = 
    
    var current_id = MIN(your_table[ID])
    
    RETURN
    CALCULATE(
        MAX(your_table[POM]),
        FILTER(
            ALL(your_table),
            your_table[ID] = current_id 
            && your_table[TYPE] = "sys"
        )
    )
    

    如果是自定义列,请尝试以下代码-

    POM_new_column = 
    
    var current_id = your_table[ID]
    
    RETURN
    CALCULATE(
        MAX(your_table[POM]),
        FILTER(
            ALL(your_table),
            your_table[ID] = current_id 
            && your_table[TYPE] = "sys"
        )
    )
    

    下图仅用于交叉检查。您是否正在创建 New Column,如下图所示?如果答案是肯定的,则没有理由出现列代码问题-

    【讨论】:

    • 自定义列抛出错误,例如 CALCULATE 不是函数。你能检查一下我做错了什么吗?
    • 嗨@kumarb,您要在哪里创建列。它应该在报告部分,而不是在电源查询编辑器中。我已经在这里测试了 Measure 和 Custom 列,并且在您的场景中运行良好。
    • 感谢您的回复。我正在使用直接查询,我确实创建了一个新列,只需右键单击表名,然后在字段窗格上新建列
    • 在报表编辑器中试一试>>右键单击表格>>创建新列。
    • 我也这样做了。但没有帮助。措施一工作得很好,但不是列。我不确定是什么问题。 calculate 与 measure 兼容,是这个原因吗?
    猜你喜欢
    • 2020-04-16
    • 2022-08-12
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 2015-12-02
    • 2022-01-20
    • 2020-04-28
    • 1970-01-01
    相关资源
    最近更新 更多