pivot https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/pivotplugin plugin
let deviceTelemetry = datatable (deviceId:guid, timestamp:datetime, value:dynamic)[
'fddf1cec-16db-4461-9057-3d08e46b6bcf','2020-05-15 17:01:35.7750000', dynamic({ "level": 60}),
'fddf1cec-16db-4461-9057-3d08e46b6bcf','2020-05-15 18:01:35.7750000', dynamic({ "level": 50}),
'aaaaaaaa-fed4-c23b-422b-e85e0877c092','2020-05-15 17:01:35.7750000', dynamic({ "level": 100, "flow": 350}),
'aaaaaaaa-fed4-c23b-422b-e85e0877c092','2020-05-15 18:01:35.7750000', dynamic({ "level": 90, "flow": 360}),
'aaaaaaaa-fed4-c23b-422b-e85e0877c092','2020-05-15 19:01:35.7750000', dynamic({ "level": 80, "flow": 370}),
'aaaaaaaa-fed4-c23b-422b-e85e0877c092','2020-05-15 20:01:35.7750000', dynamic({ "level": 70, "flow": 380}),
'cb04ccff-48bc-4108-9d16-7d7db9152895','2020-05-15 21:01:35.7750000', dynamic({ "pressure": 120}),
'cb04ccff-48bc-4108-9d16-7d7db9152895','2020-05-15 20:01:35.7750000', dynamic({ "pressure": 130}),
'cb04ccff-48bc-4108-9d16-7d7db9152895','2020-05-15 21:01:35.7750000', dynamic({ "pressure": 140}),
];
deviceTelemetry
| mv-expand kind=array value
| extend k = tostring(value[0]), v = toreal(value[1])
| extend timestamp_bin = bin(timestamp , 1d)
| evaluate pivot(k, avg(v), timestamp_bin, deviceId)
timestamp_bin |
deviceId |
flow |
level |
pressure |
2020-05-15T00:00:00Z |
fddf1cec-16db-4461-9057-3d08e46b6bcf |
NaN |
55 |
NaN |
2020-05-15T00:00:00Z |
aaaaaaaa-fed4-c23b-422b-e85e0877c092 |
365 |
85 |
NaN |
2020-05-15T00:00:00Z |
cb04ccff-48bc-4108-9d16-7d7db9152895 |
NaN |
NaN |
130 |
Fiddle https://dataexplorer.azure.com/clusters/help/databases/Samples?query=H4sIAAAAAAAAA73UzWrjMBAA4Hsg7zDkEhukRZItS3bpA%20x9byUs%20hkXU9sJjuI27O67r9x4S9pDCS6sDAbNSPMxB02LATyOjcMf2GKHYTjDPXgT4mdbhOSS/O6rx1PjCYSmw2Mw3aGKZ3DaERhNe8LKn3vTNS59WK%202tfc1d%20goL7yleV5wWjKpaOaZxrywhXX1lmwFE4wySbkErirGq0x%20U0qyuLYE5oLJL9i0OGK7qQAK9iclywB9EyBnwMyL1uhz6kQWFSEsRS2RaaUcK8WSDjhjBDZ1u3%20Om%20wL2m3tlNdasVwrb9L0taYWa4LdpKlrTc%20asyx3rq5prq2jOWealp4XVHnlbcml0KX8oPHPtMOAx%20NpwAnkYjnyaUvvkOx/dJJfkN3devXh9a9Xv6EbKb4cTO/hqen9vRkGc7688imLLwGnVJwTYX8MQ9M/Jq/JB7ZL4zR4jQ9o2jnKd%20nVtbcB8tM2fTwa/8lbDAhwfzk93Y0TBg7NuA/JEwEzRibWf1%20BwL8Blf4FkG8uh8sEAAA=