从计算的 table 中获取最小值
Getting minimum values out of calculated table
我有:
a table 用户名
a table 指示具有用户名、操作时间、操作名称列的操作。命名为 events unique_events
我从一月份开始收集数据。我想在我的 table 用户名中有一列,它表示自用户首次使用我的应用程序到 1 月 1 日以来已经过了多长时间。
因此,如果用户在 1 月首次登录,则该用户名所在行的值将为 0。如果用户在 3 月登录,则该值为 2。
我试过了:
Column = DATEDIFF(01-01-2016, MIN(SELECTCOLUMNS(FILTER('events unique_events','events unique_events'[User Name] = Users[User Name]),"DatedTime", [DatedTime])),MONTH)
其中 returns 一个错误,指出 Min 函数需要列引用。
我也用 FirstDate 代替 MIN 进行了同样的尝试,它返回一个错误,指出 FirstDate 不能与汇总函数一起使用。
关于如何实现此目标或解决我尝试过的问题的任何其他想法?
(为简单起见,我将调用您的 table 'Events' 和用户登录日期字段 'User_Login_Date')。
首先,将您的应用开始日期定义为衡量标准:
App_Start_Date:= 日期(2016, 1, 1)
然后,定义查找应用程序开始日期和用户登录日期之间的最小差异的度量:
User_Start_Diff=: MINX(事件, DATEDIFF([App_Start_Date], 事件[User_Login_Date], 月))
将此度量放入针对用户名的枢轴 table 中,您应该会得到想要的结果。
工作原理:
1) MINX 逐条记录并计算每个客户登录的日期差异。然后它在结果中找到最小值;
2) 当您将度量放入数据透视表 table 时,它会按客户拆分 MINX 结果,并分别为每个客户重新计算最小值。您不需要进行分组。
[Start_Date] 度量的创建在技术上不是必需的,而是良好风格的问题 - 不要在公式中对值进行硬编码,始终创建度量。当你需要做出改变时,你会感谢自己。
我有:
a table 用户名
a table 指示具有用户名、操作时间、操作名称列的操作。命名为
events unique_events
我从一月份开始收集数据。我想在我的 table 用户名中有一列,它表示自用户首次使用我的应用程序到 1 月 1 日以来已经过了多长时间。
因此,如果用户在 1 月首次登录,则该用户名所在行的值将为 0。如果用户在 3 月登录,则该值为 2。
我试过了:
Column = DATEDIFF(01-01-2016, MIN(SELECTCOLUMNS(FILTER('events unique_events','events unique_events'[User Name] = Users[User Name]),"DatedTime", [DatedTime])),MONTH)
其中 returns 一个错误,指出 Min 函数需要列引用。
我也用 FirstDate 代替 MIN 进行了同样的尝试,它返回一个错误,指出 FirstDate 不能与汇总函数一起使用。
关于如何实现此目标或解决我尝试过的问题的任何其他想法?
(为简单起见,我将调用您的 table 'Events' 和用户登录日期字段 'User_Login_Date')。
首先,将您的应用开始日期定义为衡量标准:
App_Start_Date:= 日期(2016, 1, 1)
然后,定义查找应用程序开始日期和用户登录日期之间的最小差异的度量:
User_Start_Diff=: MINX(事件, DATEDIFF([App_Start_Date], 事件[User_Login_Date], 月))
将此度量放入针对用户名的枢轴 table 中,您应该会得到想要的结果。
工作原理: 1) MINX 逐条记录并计算每个客户登录的日期差异。然后它在结果中找到最小值;
2) 当您将度量放入数据透视表 table 时,它会按客户拆分 MINX 结果,并分别为每个客户重新计算最小值。您不需要进行分组。
[Start_Date] 度量的创建在技术上不是必需的,而是良好风格的问题 - 不要在公式中对值进行硬编码,始终创建度量。当你需要做出改变时,你会感谢自己。