You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Kusto Query Language替换重复行时间戳的技术问询

使用KQL批量处理每个cart_id的两行时间戳替换需求

针对每个cart_id对应两行数据的场景,可通过分组标记行号+条件字段替换的方式实现需求,该方法无需硬编码静态ID,完全适配海量数据的分布式处理。

核心实现代码

// 示例数据表(实际使用时替换为你的表名)
datatable (cart_id: int, id: int, Associate_1: int, Associate_2: int, Trolley_Start: datetime, Begin_Picking: datetime, End_Picking: datetime, Trolley_End: datetime)
[
1, 111, 111, 112, datetime(2024-08-13T09:35:15.991Z), datetime(2024-08-13T09:37:20.123Z), datetime(2024-08-13T10:10:45.789Z), datetime(2024-08-13T10:31:12.345Z),
1, 112, 111, 112, datetime(2024-08-13T09:35:15.991Z), datetime(2024-08-13T10:14:18.567Z), datetime(2024-08-13T10:31:50.234Z), datetime(2024-08-13T10:31:12.345Z),
2, 113, 113, 114, datetime(2024-08-11T14:13:05.678Z), datetime(2024-08-11T14:15:09.456Z), datetime(2024-08-11T14:20:30.789Z), datetime(2024-08-11T16:01:11.001Z),
2, 114, 113, 114, datetime(2024-08-11T14:13:05.678Z), datetime(2024-08-11T14:33:45.123Z), datetime(2024-08-11T16:00:55.456Z), datetime(2024-08-11T16:01:11.001Z),
3, 115, 115, 116, datetime(2024-08-12T06:22:14.333Z), datetime(2024-08-12T06:23:20.111Z), datetime(2024-08-12T09:03:05.789Z), datetime(2024-08-12T07:36:14.678Z),
3, 116, 115, 116, datetime(2024-08-12T06:22:14.333Z), datetime(2024-08-12T07:32:18.789Z), datetime(2024-08-12T07:34:12.123Z), datetime(2024-08-12T07:36:14.678Z),
4, 111, 111, 117, datetime(2024-08-13T10:15:45.789Z), datetime(2024-08-13T10:18:45.789Z), datetime(2024-08-13T10:25:45.789Z), datetime(2024-08-13T10:40:45.789Z),
4, 117, 111, 117, datetime(2024-08-13T10:15:45.789Z), datetime(2024-08-13T10:26:45.789Z), datetime(2024-08-13T10:38:45.789Z), datetime(2024-08-13T10:40:45.789Z)
]
// 核心处理逻辑
| partition by cart_id 
  order by id asc // 按id排序确定行顺序,可根据实际业务调整排序字段(如Begin_Picking)
  | extend row_num = row_number()
// 按行号条件替换目标时间戳
| extend 
  Trolley_End = case(row_num == 1, End_Picking, Trolley_End),
  Trolley_Start = case(row_num == 2, Begin_Picking, Trolley_Start)
// 移除临时行号字段(可选)
| project-away row_num

关键逻辑说明

  • partition by cart_id:将数据按cart_id分组处理,Kusto会分布式执行该操作,性能适配海量数据
  • row_number():为每个分组内的行生成序号,明确区分同一cart_id下的第一/第二行
  • case()函数:根据行号条件替换对应字段,未匹配条件的行保留原字段值
  • 排序规则:示例中按id排序确定行顺序,若业务中需按其他维度(如拣选开始时间)排序,修改order by后的字段即可

内容的提问来源于stack exchange,提问作者rana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 14:17:03