You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Cosmos DB中按日期分组查询直接获取各时段视频播放量

Cosmos DB按时间分组统计播放量实现方法

完全可以通过Cosmos DB原生SQL查询直接实现按时间分组的统计,不需要拉取全量数据到前端处理。

核心实现思路

你存储的date字段是标准ISO 8601格式字符串,可通过LEFT函数截取到对应时间精度,再配合GROUP BY分组+COUNT聚合即可直接得到统计结果。

示例查询语句

按秒统计(匹配你给出的结果示例精度)

SELECT LEFT(c.date, 19) AS timePoint, COUNT(1) AS playCount
FROM c 
WHERE c.liveId = "{ID}" 
AND c.type = "Play" 
AND c.date BETWEEN "2021-06-04T12:31:30.233Z" AND "2021-07-31T21:59:59.999Z"
GROUP BY LEFT(c.date, 19)

按分钟统计(符合你提到的每分钟播放量需求)

只需修改截取长度为16即可:

SELECT LEFT(c.date, 16) AS timePoint, COUNT(1) AS playCount
FROM c 
WHERE c.liveId = "{ID}" 
AND c.type = "Play" 
AND c.date BETWEEN "2021-06-04T12:31:30.233Z" AND "2021-07-31T21:59:59.999Z"
GROUP BY LEFT(c.date, 16)

结果转换

查询返回的结果结构是数组,每个元素格式如下:

[{"timePoint": "2021-04-15T15:47:34", "playCount": 3}, ...]

你可以在Azure Function后端用几行代码遍历转换为你需要的键值对格式,无需前端做任何处理。

注意事项

  • 上述语法仅适用于Cosmos DB SQL API,其他API不支持
  • 建议为liveId、type、date三个字段配置复合索引,可大幅降低大数量查询时的RU消耗,提升查询速度
  • 如需其他统计精度,调整LEFT函数的截取长度即可:按小时取前13位、按天取前10位

内容的提问来源于stack exchange,提问作者geosigno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 23:15:03