Sum()在Qlik Sense数据加载编辑器中不起作用



我一直在努力理解Qlik,但文档很少,而且根本没有大量的脚本示例可以帮助我更快地掌握它。我很沮丧,所以如果我没有很好地解释,我很抱歉。

我的数据很小,只有大约3500条记录和100列。这是我通过ODBC连接到的一个表。我需要创建一个新的派生列,该列将包含来自计算的值。我需要在数据加载编辑器中完成此操作。

计算已经给了我,需要从这个伪代码翻译成工作代码:

(总计(Col_A(/total_num__of_records(*value_in_Col_B

  • Col_A是一个值为1或0的伪列
  • total_num_of_records需要是表中总行数的计数
  • Col_B是数据库中现有的一列,它包含数字值(浮动(

在数据加载编辑器中,我需要写这样的东西,但无法理解为什么它不起作用。错误消息实际上显示了一个问号,没有任何解释:

LOAD * , 
((SUM(Col_A) / COUNT(Record_ID)) * Col_B) AS New_Column;

这就是我想做的全部,但它不起作用,尽管我在谷歌上搜索了很多,但我不知道如何在数据加载编辑器中执行如此简单的计算。请帮忙!非常感谢。

脚本引擎和您一样困惑:(笑话。

脚本中的聚合函数要求对不在聚合中的所有字段使用groupby子句。如果没有组,脚本引擎就不知道如何sum((或count((,因为它是逐行工作的,所以sum(A(=A,count(A(=1。

只知道你在这里告诉我们的内容,这个表达式在数据加载编辑器中没有意义,而且在表达式编辑器中通过前端会得到更好的服务,非常有意义。它会在那里:

((SUM(Col_A) / COUNT(total Record_ID)) * Col_B)

这将使Col_B乘以标记为1的事务的百分比。所以可能是完成任务的百分比或类似的东西。

要在数据加载编辑器中执行此操作,您需要使用您的分组创建一个临时表,但只能创建相同的临时表,然后您永远无法在任何其他级别显示该比率,而只能显示您在分组中定义的比率,因此您将失去Qlik前端的所有功能。

类似于这样的内容:(我刚刚添加了DEPARTMENT,以显示sum((、count((中没有的所有字段都需要按分组。这包括Col_B,假设您希望每个DEPARTMENT的每个日期的Col_B值都有一个New_Column值(

DAILY_COMP_RATIOS:
load 
DATE,
DEPARTMENT,
((SUM(Col_A) / COUNT(Record_ID)) * Col_B) AS New_Column
resident 
SOURCE_TABLE
group by
DATE,
DEPARTMENT,
Col_B;

最新更新