【问题标题】:Aggregate other rows based on comparing dimension in Set Analysis根据集合分析中的比较维度聚合其他行
【发布时间】:2016-08-10 16:44:36
【问题描述】:

我的数据如下所示:

Associate   ReferredBy  SalesQty    ReferralSales
Alice       Bob         50
Bob         Carl        60
Carl        NULL        70
Alice       NULL        80
Bob         Alice       90
Dan         Alice       10

ReferralSales 列中,我想通过推荐显示该员工的总销售额。

Alice 负责推荐 Bob 和 Dan,从而产生 100 个单位的销售额。 Bob 推荐了 Alice,50 个单位。 卡尔提到鲍勃,60 个单位。 丹没有提到任何人。

如何做到这一点?我试过了:

SUM({1 Associate = {ReferredBy}} SalesQty)

【问题讨论】:

    标签: qlikview qliksense set-analysis


    【解决方案1】:

    假设您尝试在条形图或类似图中执行此操作,请将 ReferredBy 设为您的主要维度,然后使用 sum(SalesQty) 作为表达式。这将为您提供一个条形图,显示与您提到的突破相匹配的每个推荐人的总销售额。你根本不需要集合分析。

    了解更多关于集合分析的信息check here。例如,您可以使用它来将输出限制为仅推荐给一位同事:sum({$<Associate={'Bob'}>} SalesQty)

    【讨论】:

      【解决方案2】:

      如果您希望在同一个表中显示 RefferalSales,那么只需添加到您的脚本中:

      left join
      Load ReferredBy as Associate, sum(SalesQty) as ReferredByQty Resident T1 group by ReferredBy;
      

      在 RefferalSales 计算中使用:sum(ReferredByQty) 然后你就很容易得到

      Associate   ReferredBy  SalesQty    ReferralSales
      Alice           Bob         50          100
      Alice           NULL        80          100
      Bob             Alice       90          50
      Bob             Carl        60          50
      Carl            NULL        70          60
      Dan             Alice       10          0
      

      【讨论】:

        【解决方案3】:

        我知道这不完全是您所要求的,但我可以使用一些脚本技巧和 if() 语句创建您想要的表,但在设置分析路线上出现空白,因为我想不出一种使集合分析有选择地破坏维度的方法。

        我试过了

        sum({<ReferredBy={'$(above(only(SelAssociate),0))'}>} SalesQty)

        因为我可以使用此above(only(SelAssociate),0) 在与 Associatte 相同的行上获取Referer,但是当对象呈现时,它对整个数据集执行 $() 而不是逐行返回空值,然后答案是只有 null() 引用者总数。我想每个表达式只能评估一次设置状态。您也可以在图片中看到不正确的表达方式。

        这就是我使用 if() 的原因,因为它可以在对象内逐行工作,但是我仍然需要打破维度,所以我在脚本中创建了一个丢失的关联列表。

        T:
        load * inline [
        Associate,ReferredBy,SalesQty 
        Alice,Bob,50
        Bob,Carl,60
        Carl,,70
        Alice,,80
        Bob,Alice,90
        Dan,Alice,10
        ];
        
        Load distinct 
        Associate as SelAssociate resident T;
        

        然后SelAssociate是维度,表达式是

        sum(if(Associate=SelAssociate, SalesQty))
        sum(if(ReferredBy=SelAssociate, SalesQty))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多