azure-data-explorer - 如何跨行对整数数组求和
问题描述
如何实现相当于summarize sum(Trend) by id
where Trend
is 整数数组?
Input:
——————————————————————————
Id | ParentId | Trend
——————————————————————————
C1-P1 | P1 | [1,2,3]
C2-P1 | P1 | [4,5,6]
C3-P1 | P1 | [1,1,1]
P1 | |
C1-P2 | P2 | [4,5,6]
C2-P2 | P2 | [7,8,9]
P2 | |
—————————————————————————-
Needed Output:
——————————————————————————
Id | ParentId | Trend
——————————————————————————
C1-P1 | P1 | [1,2,3]
C2-P1 | P1 | [4,5,6]
C3-P1 | P1 | [1,1,1]
P1 | | [6,8,10]
C1-P2 | P2 | [4,5,6]
C2-P2 | P2 | [7,8,9]
P2 | | [11,13,15]
—————————————————————————-
解决方案
请检查以下查询是否解决了您的情况:它使用mv-expand 运算符和 'with_itemindex' 选项来扩展数组的值。
let _data = datatable(Id:string, ParentId:string, Trend:dynamic)
[
'C1-P1','P1', dynamic([1,2,3]),
'C2-P1', 'P1', dynamic([4,5,6]),
'C3-P','P1',dynamic([1,1,1]),
'P1','',dynamic([]),
'C1-P2','P2',dynamic([4,5,6]),
'C2-P2','P2',dynamic([7,8,9]),
'P2', '', dynamic([])
];
_data
| mv-expand with_itemindex=x Trend to typeof(long)
| summarize sum(Trend) by ParentId, x
| summarize Trend=make_list(sum_Trend) by ParentId
| union (_data | where isnotempty( ParentId))
推荐阅读
- c++ - 你如何在 macOS 上使用 Valgrind/Helgrind?
- android - Android 版本构建错误:“无法进一步更改此属性的值。”
- react-native - React Native 和嵌套导航,好方法?
- java - 我正在尝试在 aes 算法中打印密钥。但打印的密钥大小不是 128 位
- wordpress - 仅主页将子域重写为域失败
- c - 如何避免C中的嵌套ifs?
- javafx - 强制停止 Java FX 应用程序时,deleteOnExit 是否正常工作
- html - CSS 将文本与图像相邻
- python - Heroku 数据库删除
- css - 子子元素没有改变