Qlik Sense,计算与总和不同

时间:2016-06-15 07:09:35

标签: sql oracle qlikview qliksense

我试图在qlik意义上创建一个表达式来计算每个prod加起来且大于0的ID的不同数量。

到目前为止,Qlik感觉表达,但错误:

  

总和(aggr(计数(DISTINCT ID),PROD1 + PROD2 + PROD3))

我不太确定如何添加表达式添加> 0和年月。

使用sql:

    select count(distinct ID) as Number
    from tb1 x
    where (x.Prod1 + x.Prod2 + x.Prod3)> 0
    x.Year = '2016/05'  

任何帮助都会很棒,

感谢。

3 个答案:

答案 0 :(得分:0)

最简单的方法是使用if语句,代码

select count(distinct ID) as Number
    from tb1 x
    where (x.Prod1 + x.Prod2 + x.Prod3)> 0
    x.Year = '2016/05'  

变为

count (DISTINCT, if((PROD1 + PROD2 + PROD3)>0,ID)))

答案 1 :(得分:0)

在脚本中添加calc字段

numsum(Prod1,Prod2,Prod3) as Prod_Total 

" numsum"也将null转换为0!如果Prod1,Prod2或Prod3为空,则总计为空。

在图表中使用此calc:

count({<Prod_Total={'>0'}>} Distinct ID)

答案 2 :(得分:0)

如果数据库中有日期字段,则需要在数据模型脚本中创建日期(Date(mydate, 'YYYYMM') as YearMonth)中的YearMonth字段,然后将其放在表达式中:

count({<Prod1={'>0'}, Prod2={'>0'}, Prod3={'>0'}, YearMonth={'201605'}>}[distinct ID])

如果数据库中的字段Year已经是yearmonth字段,则可以执行此操作(但我建议使用第一种方法):

count({<Prod1={'>0'}, Prod2={'>0'}, Prod3={'>0'}, Year={'2016/05'}>}[distinct ID])

您应该从Qlik网站上阅读此help section,了解有关设置分析的信息