首页 > 解决方案 > 每日独立用户累计总数

问题描述

我在创建查询以绘制每天唯一用户的运行总和时遇到问题。

我有一张用法表。让我们考虑这张表:

+--------+---------------------+
| UserId | Timestamp           |
+--------+---------------------+
| 1      | 2020-6-9T08:00:00Z  |
+--------+---------------------+
| 2      | 2020-6-9T09:23:00Z  |
+--------+---------------------+
| 3      | 2020-6-9T14:12:00Z  |
+--------+---------------------+
| 3      | 2020-6-10T15:12:00Z |
+--------+---------------------+
| 3      | 2020-6-10T18:01:00Z |
+--------+---------------------+
| 4      | 2020-6-10T02:02:00Z |
+--------+---------------------+

我想生成的结果表是每天的累积总和,这样只有在该用户之前没有报告使用情况时总和才会增加。

上图将产生以下结果。这里的关键是,在 2020 年 6 月 10 日,用户 3 不包括在总和中,因为用户 3 在 2020 年 6 月 9 日报告了使用情况。另外,请注意用户 3 仅在 2020-6-10 报告一次(每天都是唯一使用)。

+-----------+-------+
| Day       | Users |
+-----------+-------+
| 2020-6-9  | 3     |
+-----------+-------+
| 2020-6-10 | 1     |
+-----------+-------+

标签: azureazure-data-explorerkql

解决方案


请查看activity_counts_metrics 插件

let start = datetime(2020-06-09); let end = datetime(2020-06-11); datatable (UserId:int, Timestamp:datetime) [ 1, datetime(2020-6-9T08:00:00Z), 2, datetime(2020-6-9T09:23:00Z), 3, datetime(2020-6-9T14:12:00Z), 3, datetime(2020-6-10T15:12:00Z), 3, datetime(2020-6-10T18:01:00Z), 4, datetime(2020-6-10T02:02:00Z), ] | evaluate activity_counts_metrics(UserId, Timestamp, start, end, 1d) | project Timestamp, new_dcount

在此处输入图像描述


推荐阅读