Cosmos DB SQL查询获得最高的PR日

时间:2020-09-24 19:05:29

标签: azure azure-cosmosdb

我对cosmos db比较陌生。我创建了一个温度测量数据库,每5分钟添加一个新值。

以下是集合中某个项目的示例:

{
   "id": "3445609a-c4ae-44b3-b8fa-a2e55082558b",
   "temp": 14.31,
   "timestamp": "2020-09-24T18:56:48.7828653+00:00",
   "probeid": "01",
   "lightvalue": "0",
   "RelativeHumidity": "50.10"
}

在了解_ts值可用于此目的之前,我最初添加了时间戳值。

我仍然处于逻辑设计阶段,试图找出最佳方法以使其稳定并降低资源成本。

用例将是:在WebUI中显示的给定时间内每天的最大,最小,平均测量值。

1 个答案:

答案 0 :(得分:0)

此SQL是否满足您的要求?

 SELECT MAX(c.temp) as max_temp,MIN(c.temp) as min_temp,AVG(c.temp) AS average_temp,LEFT(toString(TimestampToDateTime(c._ts*1000)),10) AS day  
 FROM c 
 WHERE c._ts*1000 < GetCurrentTimestamp() 
 GROUP BY LEFT(toString(TimestampToDateTime(c._ts*1000)),10)