gpt4 book ai didi

azure - KQL 更改评估数据透视表中的列顺序

转载 作者:行者123 更新时间:2023-12-03 00:55:20 24 4
gpt4 key购买 nike

我有以下查询:

let fooTable = datatable(TIMESTAMP: datetime, list_id: int, dim_count: int) [
datetime("2022-01-17T08:00:00Z"), -1, 120,
datetime("2022-01-17T08:00:00Z"), 1, 50,
datetime("2022-01-17T08:00:00Z"), 2, 30,
datetime("2022-01-17T08:00:00Z"), 8, 30,
datetime("2022-01-17T08:00:00Z"), 2001, 30,
datetime("2022-01-17T08:00:00Z"), 4, 30,
];
fooTable
| order by TIMESTAMP desc, dim_count desc
| evaluate pivot(list_id, take_any(dim_count), TIMESTAMP)

这会产生以下结果:

TIMESTAMP                   1   -1  2   2001    4   8
2022-01-17T08:00:00Z 50 120 30 30 30 30

这几乎产生了我需要的东西 - 对 TIMESTAMP 值进行分组并为每个 list_id 值创建一列,以使用 dim_count 作为值。

但我期望列的顺序不同(就像在输入中一样)。

TIMESTAMP                   -1  1   2   8   2001    4
2022-01-17T08:00:00Z 120 50 30 30 30 30

如何以这种方式对列进行排序? (列的数量和值是动态的)。或者,如何控制返回列的顺序?

实际上,我有更多数据(有更多时间段),并且我希望按照列的最大总和 (dim_count) 的顺序返回列。因此输出中列的顺序如下:

fooTable
| summarize sum(dim_count) by list_id
| order by sum_dim_count desc
| project list_id

哪个产生

-1
1
2
8
2001
4

这就是我想要的列顺序(就像我的预期输出一样)。

最佳答案

如果订单是基于 row_number ,您可以将其与 project-reorder 一起使用运算符,客户端需要解析列名并删除前缀,例如:

let fooTable = datatable(TIMESTAMP: datetime, list_id: int, dim_count: int) [
datetime("2022-01-17T08:00:00Z"), -1, 120,
datetime("2022-01-17T08:00:00Z"), 1, 50,
datetime("2022-01-17T08:00:00Z"), 2, 30,
datetime("2022-01-17T08:00:00Z"), 8, 30,
datetime("2022-01-17T08:00:00Z"), 2001, 30,
datetime("2022-01-17T08:00:00Z"), 4, 30,
];
fooTable
| serialize
| extend list_id = strcat(row_number(), "_", list_id)
| order by TIMESTAMP desc, dim_count desc
| evaluate pivot(list_id, take_any(dim_count), TIMESTAMP)
| project-reorder *
<表类=“s-表”><标题>时间戳1_-12_13_24_85_20016_4 <正文>2022-01-17 08:00:00.00000001205030303030

关于azure - KQL 更改评估数据透视表中的列顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71006289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com