2016-03-14 30 views
1

我有一个显示工程师访问和参加工作类型的数据集。QlikView脚本计数条件发生

工程师的访问表:

OrderNum, Engineer, Job Type, Date 
1   John  Install 01/04/15 
2   Phil  Remove 02/04/15 
3   George Install 01/04/15 
4   George Replace 02/04/15 
5   George Replace 03/04/15 
6   John  Install 01/04/15 
7   John  Install 01/04/15 
8   John  Replace 02/04/15 
9   John  Remove 02/04/15 

对于上面的示例表 - 我想显示每个工程师(但使用约翰为例):

  • 他的主要作业类型是“安装”;
  • 他参加的工作总数是5;
  • 他工作了3天;
  • 含义他每天参加1.67个工作。

我试图将这添加到使用各种附加列的加载脚本,但我无法使aggr/count语句正常工作。

这是一种合理的方法,还是我错误的方式?

谢谢。

回答

1

你绝对不想在脚本中这样做,因为那样你就不得不尝试猜测用户可能会做出的选择的任何组合,并为每个案例创建聚合。在前端,除了第一项措施外,它是相当平凡的。为了说明我加了2个订单菲尔问题的安装和更换,使他的每

这里1是我做的第一稿: enter image description here

现在的问题是 - 对于“”菲尔。 mode()函数按照设计的那样工作,但我敢打赌,没人想看到他们最常执行的任务是什么。

我尝试了一些东西,但这个是接近我得到了一些有用的东西:

enter image description here

我使用的表达式为

`if(isnull(mode([Job Type])),concat(DISTINCT [Job Type],','),mode([Job Type]))` 

,但它也不是那么好因为它可能是(现在没有清晰模式的人只是获得他们所做的所有工作的清单,而不是最常做的工作清单,但至少现在看起来他们正在工作)。然而,我却不知道如何让它做我想做的事

+0

我曾尝试创建表达式,并能够获得完成的总数和比率,但我被难倒在最执行的工作。你的表情应该适合我。在我的情况下 - 每个工程师可以分配一个典型的工作类型(例如 - 约翰通常会安装),工程师名称指定他的正常工作类型 - 例如“(安装人员)约翰”。我可以修改我的加载脚本以显示正常的作业类型。不是100%确定如何在表达中反映这一点。否则 - 我可能会为该工程师而不是您的concat返回MAX。 – tw332

+0

PS - 我会将它标记为答案,因为它已完成我所需的工作。我将会使用默认的作业类型。 – tw332

+0

concat只是为了一个人有两个平等发生的工作。听起来像你的情况不太可能 –