从用户的操作日志计算会话

时间:2016-03-28 04:23:40

标签: c# sql-server database stored-procedures analytics

我们有一个移动应用程序,可以根据用户的操作生成日志。我复制下面的示例日志,我想找到单个用户使用该应用程序的平均时间,因为您可以看到我有userIds以及操作发生的确切时间,问题是我无法找到用户使用情况时间(会话)。我确信有一种算法可以解决我的问题。我知道google-analytics等一些工具也是如此,但我想知道每个会话中用户活动时间的确切值,平均活动时间和平均会话时间;每个用户和所有用户。

ID   UserID Action  ActionID    CreatedDateTime   
6452477 54261   37  30889   2016-03-28 08:41:43.110
6452476 54261   37  30889   2016-03-28 08:41:42.590
6452475 54261   37  30889   2016-03-28 08:41:42.590
6452474 54261   45  30889   2016-03-28 08:41:42.030
6452473 54261   45  30889   2016-03-28 08:41:42.030
6452472 40906   81  20      2016-03-28 08:41:32.853
6452471 40906   22  210718  2016-03-28 08:41:32.003
6452470 22812   15  58598   2016-03-28 08:41:29.913
6452469 54261   81  0       2016-03-28 08:41:29.717
6452468 54261   81  0       2016-03-28 08:41:29.700
6452467 22812   15  58598   2016-03-28 08:41:22.233
6452466 22812   15  58598   2016-03-28 08:41:22.040
6452465 22812   25  58598   2016-03-28 08:41:22.020
6452464 22812   15  58598   2016-03-28 08:41:22.017
6452463 40906   81  10      2016-03-28 08:41:02.023
6452462 38296   32  31237   2016-03-28 08:41:01.970
6452461 455     32  29596   2016-03-28 08:41:01.967
6452460 38258   22  210717  2016-03-28 08:40:58.930
6452459 22812   412 -1      2016-03-28 08:40:56.860
6452458 22812   82  0       2016-03-28 08:40:52.820

1 个答案:

答案 0 :(得分:-1)

嗯,据我所知,有些函数会在发生一些特殊事件时执行。例如,onResume()onDestroy()onPause()onCreate()。这些适用于Android,我知道有一些适用于iOS和其他平台。 当您想要获得用户的会话时间时,我认为可以计算onCreate()onDestroy()以及onResume()onPause()之间的时间,因此您将能够在单个活动中获得用户会话的确切时间。