使用 cosmos db sql 按相同时间戳对数据进行分组
group data by same timestamp using cosmos db sql
问题:
我正在尝试 SQL 查询,如下图所示,我希望它按相同的时间戳分组
预期输出:
[
{
"tag1": {
"TagName": "PV1-input-power-L(10W)",
"Value": 0
},
"tag2": {
"TagName": "Sunshine-Display-Value",
"Value": 0
},
"tag3": {
"TagName": "TotalEnergy-(100kWh)_1",
"Value": 0
},
"timestamp": "2020-03-27T02:40:18Z"
}
]
示例文档:
您可以使用用户定义函数。
这是我容器中的数据
这是我创建的函数。我将其命名为 CustomArray。
function userDefinedFunction(input){
var obj={};
input.forEach(function(element,index){
obj["tag"+index] = {
TagName :element.TagName,
Value: element.Value
};
}); return obj;}
在这里,我 运行 UDF 和我的 select 语句
就是returns下面的数据。
架构与您正在寻找的非常接近。我认为您可以通过更改 UDF 中的一些 jscript 来使其变得更好。
希望对您有所帮助!
问题:
我正在尝试 SQL 查询,如下图所示,我希望它按相同的时间戳分组
预期输出:
[
{
"tag1": {
"TagName": "PV1-input-power-L(10W)",
"Value": 0
},
"tag2": {
"TagName": "Sunshine-Display-Value",
"Value": 0
},
"tag3": {
"TagName": "TotalEnergy-(100kWh)_1",
"Value": 0
},
"timestamp": "2020-03-27T02:40:18Z"
}
]
示例文档:
您可以使用用户定义函数。
这是我容器中的数据
这是我创建的函数。我将其命名为 CustomArray。
function userDefinedFunction(input){
var obj={};
input.forEach(function(element,index){
obj["tag"+index] = {
TagName :element.TagName,
Value: element.Value
};
}); return obj;}
在这里,我 运行 UDF 和我的 select 语句
就是returns下面的数据。
架构与您正在寻找的非常接近。我认为您可以通过更改 UDF 中的一些 jscript 来使其变得更好。 希望对您有所帮助!