我需要获得Max([Date])的唯一值。
我有此最大日期的计算:
{ FIXED [City] : Max([Date]) }
计数:
IF[Max Date (Last Street)]= [Date]
THEN [Count Record]
Else 0
END
例如:
City Date Street I get (Count) I Want (Count)
Miami 01/01/2019 1st 0 0
Miami 01/02/2019 2nd 0 0
Miami 01/03/2019 3rd 1 0
Miami 01/03/2019 4th 1 1
答案 0 :(得分:1)
这是将LOD计算与表计算混合使用的好情况。您的初始LOD功能看起来不错,因为它将找到每个城市的完整最大日期。从那里,您可以应用已经开始的计算字段的概念,并添加表计算(Last()):
IF ATTR([Max Date (Last Street)]) = ATTR([Date])
AND LAST() == 0
THEN [Count Record]
Else 0
END
请注意,计算字段的其他部分包装在ATTR()中,使其成为聚合。
将其他城市重新添加到数据中后,您必须通过Right clicking on table calculation on view > Edit Table Calculation...
编辑表计算
请注意以下事实:选择了特定尺寸,并且重新启动所有更改为“城市”
最终产品应如下所示:
替代方法:
如果您只想使用LOD,并且街道名称始终包含唯一的升序数字:
If Date = {Fixed [City]: MAX(Date)}
AND REGEXP_EXTRACT([Street],'(\d+)') = {FIXED [City], [Date]:
MAX(REGEXP_EXTRACT([Street],'(\d+)'))}
Then 1
Else 0
END
以上基本上从街道上提取了电话号码,然后将其添加为已存在的MAX(Date)的条件。然后,只有同时满足两个条件,您才会获得1。
最终结果将与上面相同。