如何在KQL中实现日期列转置,输出列名与日期并按日期排序
KQL宽表转长表(Excel转置效果)实现方案
你需要的转置效果可以通过bag_pack_all搭配mv-expand算子实现,完整可运行代码如下:
let T1 = datatable (Date1:string, Date2:string, Date3:string, Date4:string, Date5:string, Date6:string, Date7:string, Date8:string, Date9:string, Date10:string )[ "2021-11-3", "2021-11-4", "2021-11-5", "2021-11-6", "2021-11-7", "2021-11-8", "2021-11-9", "2021-11-10", "2021-11-11", "2021-11-12"]; T1 // 将每行的列名与对应值打包为动态键值对字典,无需手动枚举列名 | extend cols = bag_pack_all() // 将字典的每个键值对拆分为独立行,完成宽表转长表 | mv-expand cols // 提取键为DateType、值为Date,此处转为日期类型方便后续排序 | project DateType = tostring(bag_keys(cols)[0]), Date = todatetime(cols[bag_keys(cols)[0]]) // 按日期升序排序,如需按列名顺序排序可替换为 order by DateType asc | order by Date asc
说明
- 若你的源表存在多行数据,转置时需要区分行归属,可以在执行
bag_pack_all前新增行标识列:| extend row_id = row_number(),最后project时把row_id一同输出即可 - 若需要保留日期的原始字符串格式,去掉
Date字段的todatetime()包裹即可
内容的提问来源于stack exchange,提问作者PorgtheEaten
相关产品推荐
相关产品推荐

