使用 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 来使其变得更好。 希望对您有所帮助!