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

如何按时间区间和category分组统计Id数量?KDB+技术问询

KDB+按时间区间和Category分组统计ID数量的实现方法

需求说明

需要按指定时间区间(如00:00-05:00、05:00-12:00等)和category字段分组,统计每组内id的数量。示例数据如下:

tab:([]time:1000?.z.t;category:1000?`a`b`c`d;id:1000?`abc`cdb`jiw`opw`jiofsef`lksfj)

实现步骤

1. 定义时间区间规则

先设定时间区间的分界点和对应的标签,方便后续分组:

// 定义区间分界点(.z.t类型,单位为毫秒)
breaks: 0D05:00:00 0D12:00:00 0D17:00:00 0D24:00:00
// 对应区间的显示标签
labels: `00:00-05:00`05:00-12:00`12:00-17:00`17:00-24:00

若需要调整区间,直接修改breaks和labels即可(比如改成每3小时一组)。

2. 分组统计查询

通过binr函数将每条数据的time映射到对应的区间标签,再按时间区间+category分组统计id的数量:

select count[id] by timeRange: labels[binr[breaks; time]], category from tab

如果只需要按时间区间统计(不区分category),可以简化为:

select count[id] by timeRange: labels[binr[breaks; time]] from tab

结果说明

  • binr[breaks; time]:返回每条time在breaks数组中的索引位置,用于匹配对应的区间标签;
  • timeRange:作为分组后的时间区间列名,显示对应的区间标签;
  • 最终结果会展示每个时间区间+category组合下的id总数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 09:12:18