【问题标题】:Calculate Count of users every month in Kusto query language使用 Kusto 查询语言计算每个月的用户数
【发布时间】:2020-11-06 12:48:36
【问题描述】:

我有一个名为tab1的表:

Timestamp    Username.   sessionid
12-12-2020.  Ravi.       abc123
12-12-2020.  Hari.       oipio878
12-12-2020.  Ravi.       ytut987
11-12-2020.  Ram.        def123
10-12-2020.  Ravi.       jhgj54
10-12-2020.  Shiv.       qwee090
10-12-2020.  bob.        rtet4535
30-12-2020.  sita.       jgjye56

我想计算每天不同Usernames 的数量,这样输出将是:

day.            count
10-12-2020.     3
11-12-2020.     1
12-12-2020.     2
30-12-2020.     1

尝试查询:

tab1
    | where timestamp > datetime(01-08-2020)
    | range timestamp from datetime(01-08-2020) to now() step 1d
    | extend day = dayofmonth(timestamp)
    | distinct Username
    | count
| project day, count

【问题讨论】:

  • 标题说每月,但描述正文和选择的答案是按天分类的。我建议将问题标题改为“日”而不是“月”。

标签: azure-data-explorer kql


【解决方案1】:

要对每天的用户名数量进行非常接近的估计,只需运行此程序(数字不准确,请参阅详细信息 here):

tab1
| summarize dcount(Username) by bin(Timestamp, 1d)

如果您想要准确的结果,那么您应该这样做(请注意,查询的性能将低于前一个查询,并且仅当您每天有多达 1,000,000 个用户名时才有效):

tab1
| summarize make_set(Username) by bin(Timestamp, 1d)
| project Timestamp, Count = array_length(set_Username)

【讨论】:

  • 我是 KQL 的新手,这对我很有帮助。非常感谢:)除此之外,我还试图获得从上个月计数到本月计数的用户计数百分比变化。月。 count %change 10. 3 0% 11. 1 66.6% 12. 2 100% 关于如何计算这个 %change 列有什么建议吗?提前致谢。
  • 检查 prev() 函数。顺便说一句,如果正确,请将 Slavik 的答案标记为答案。非常感谢!
  • @Avnera:感谢您的帮助。是的 prev() 工作。
猜你喜欢
  • 2023-01-20
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多