问题描述
我一直在努力理解Qlik,但是文档稀疏,并且根本没有大量的脚本示例可以帮助我更快地了解它。我很沮丧,如果不能很好地解释我,我深表歉意。
我的数据很小,只有大约3500条记录和100列。它是我已经通过ODBC连接连接到的一个表。我需要创建一个新的派生列,其中将包含来自计算的值。我需要在数据加载编辑器中完成此操作。
计算已交给我,需要将其从伪代码转换为工作代码:
(sum(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;
这就是我想要做的,但是它行不通,尽管进行了大量的搜索,但我无法弄清楚如何在数据加载编辑器中执行这种简单的计算。请帮忙!谢谢!
解决方法
脚本引擎和您一样困惑:)开玩笑。
脚本中的聚合函数需要group by子句来访问不在聚合中的所有字段。没有脚本引擎的分组,因为它是逐行工作的,所以不知道如何sum()或count(),因此Sum(A)= A且count(A)= 1。
仅知道您在此处告诉我们的内容,在数据加载编辑器中无法执行此表达式,并且通过前端在表达式编辑器中提供更好的服务和完全有意义。将会是:
((SUM(Col_A) / COUNT(total Record_ID)) * Col_B)
这将使Col_B乘以标记为1的事务百分比。因此,可能是已完成任务或类似任务的百分比。
要在“数据加载编辑器”中执行此操作,您需要创建一个临时表,并仅使用group bys创建临时表,然后再也无法在任何其他级别上显示该比率,但您在group by中定义的比率无法显示。 Qlik前端的所有功能。
类似这样的事情:(我刚刚添加了DEPARTMENT,以显示不在sum(),count()中的所有字段都必须在group by中。这包括Col_B,假设您希望每个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,Col_B;