数据集是大学排名,并且我有一列“世界排名”和“年份”。我想创建一个名为“排名差异”的新字段,以查看2018年至2011年大学排名的差异。例如:
Name Year World Rank
Harvard 2011 4
Harvard 2018 5
对于上述情况,等级差为-1。数据集包含很多大学,我不确定如何执行LOD或其他任何解决方案。
答案 0 :(得分:0)
在某些情况下,您可以在计算中使用“ if”来返回值,否则返回null。一个短语是经过过滤的计算。由于min(),max(),avg()等聚合计算会默默忽略空值,因此您可以在聚合计算中使用过滤后的计算。
因此,假设您的数据源每年每所大学有一行,并且将[University]作为维度放置在某个架子上,那么以下计算将得到您想要的结果。由于每年每所大学只有一排,因此可以轻松地使用max(),sum()或avg()代替min()
min(if [Year] = 2018 then [World Rank] end) - min(if [Year] = 2011 then [World Rank] end)
要扩展,您可以使用用户提供的参数代替硬编码的开始和结束年份,或者使用LOD计算来查找数据集中各大学的最早和最新记录。