I have a kusto table in this format and I need to coalesce the value in columns into one row for a UniqueId. Could you give me some pointers?
UniqueId | latencyForCall1 | latencyForCall2 | latencyForCall3 |
---|---|---|---|
abcd | 100 | ||
abcd | 120 | ||
abcd | 240 | ||
efgh | 130 | ||
efgh | 110 | ||
efgh | 310 |
UniqueId | latencyForCall1 | latencyForCall2 | latencyForCall3 |
---|---|---|---|
abcd | 100 | 120 | 240 |
efgh | 130 | 110 | 310 |
You can use a summarize with take_any() aggregation function. If only one column is provided to it, it will attempt to use a non-null value.
Here is your example:
let T = datatable(UniqueId:string, latencyForCall1:long, latencyForCall2:long, latencyForCall3:long)
[
"abcd", 100, long(null), long(null),
"abcd", long(null), 120, long(null),
"abcd", long(null), long(null), 240,
"efgh", 130, long(null), long(null),
"efgh", long(null), 110, long(null),
"efgh", long(null), long(null), 310,
];
T
| summarize take_any(latencyForCall1), take_any(latencyForCall2), take_any(latencyForCall3) by UniqueId
UniqueId | latencyForCall1 | latencyForCall2 | latencyForCall3 |
---|---|---|---|
abcd | 100 | 120 | 240 |
efgh | 130 | 110 | 310 |