kdb查询:按时间和类别对Id进行分组

Ter*_*rry 0 kdb

我想统计Id的数量并将它们按类别分组在特定时间下

样本数据:

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

我期待的结果就像

按组划分的 ID 时间编号

00:00 - 05:00 300

05:00 - 12:00 100

12:00 - 17:00 200

17:00 - 24:00 400

这里的时间差距可能不完全相同。任何想法?

这就是我到目前为止所得到的:

select count id by category from tab
Run Code Online (Sandbox Code Playgroud)

ria*_*noc 5

bin很有用

https://code.kx.com/q/ref/bin/

buckets:00:00:00.0 05:00:00.0 12:00:00.0 17:00:00.0
select count id by category, buckets buckets bin time from tab
category time        | id
---------------------| --
a        00:00:00.000| 62
a        05:00:00.000| 85
a        12:00:00.000| 65
a        17:00:00.000| 54
b        00:00:00.000| 63
b        05:00:00.000| 81
b        12:00:00.000| 55
b        17:00:00.000| 51
c        00:00:00.000| 67
c        05:00:00.000| 89
c        12:00:00.000| 66
c        17:00:00.000| 35
d        00:00:00.000| 57
d        05:00:00.000| 72
d        12:00:00.000| 57
d        17:00:00.000| 41
Run Code Online (Sandbox Code Playgroud)

您可能还希望查看 Window Joins

https://code.kx.com/q/ref/wj/