首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为Kusto中的每个唯一ID获取最近30天的每天一条记录?

如何为Kusto中的每个唯一ID获取最近30天的每天一条记录?
EN

Stack Overflow用户
提问于 2018-12-03 23:17:54
回答 1查看 2.5K关注 0票数 4

我的数据源是“元数据”。每个设备都有一个唯一的ID,每天可以多次签到。我想提出一个Kusto查询,它每天为每个deviceID返回过去30天的一条记录。这是我目前的公式:

代码语言:javascript
运行
复制
Metadata
| project-rename['Metadata.deviceID']=deviceID, ['Metadata.appName']=appName, ['Metadata.appVersion']=appVersion, ['Metadata.timeZone']=timeZone
| where (dateTimeUtc >= __sql_substract(now(), 30))
| summarize   appName=max(['Metadata.appName']), deviceID=max(['Metadata.deviceID']), appVersion=max(['Metadata.appVersion']), timeZone=max(['Metadata.timeZone']) by bin(dateTimeUtc, 1d)
| project dateTimeUtc, appName, appVersion, timeZone, deviceID

这将每天返回1条记录,而不是每个deviceID每天返回1条记录。如果我删除deviceID ()并只使用"by dateTimeUtc",每天会为每个bin返回多条记录。如何每天为每个deviceID获取最近30天的一条记录?

EN

回答 1

Stack Overflow用户

发布于 2018-12-04 00:06:41

这会让你得到想要的结果吗?

(使用arg_max():https://docs.microsoft.com/en-us/azure/kusto/query/arg-max-aggfunction)

代码语言:javascript
运行
复制
let Metadata = datatable(deviceID:string, appName:string, appVersion:string, timeZone:string, dateTimeUtc:datetime)
[
    "d1", "a1", "v1", "PST", datetime(2018-12-01 15:53),
    "d1", "a2", "v2", "PST", datetime(2018-12-01 12:01),
    "d1", "a1", "v3", "UTC", datetime(2018-12-03 16:47:22),
    "d1", "a2", "v4", "PST", datetime(2018-12-03 14:34:22),
    "d2", "a2", "v2", "UTC", datetime(2018-11-30 15:54:22),
    "d2", "a1", "v3", "PST", datetime(2018-11-30 14:53:22),
    "d2", "a2", "v4", "UTC", datetime(2018-12-01 15:52:22),
    "d2", "a1", "v1", "PST", datetime(2018-12-01 12:51:22)    
];
Metadata
| where dateTimeUtc > ago(30d)
| summarize arg_max(dateTimeUtc, *) by deviceID, startofday(dateTimeUtc)
| project-away dateTimeUtc1 
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53596625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档