首页 > 解决方案 > KDB/q count 行数按列的值分组

问题描述

我有一张如下表

tickTime    secid   ltp
1.28E+18    37991   7350
1.28E+18    38596   7350
1.28E+18    45402   7350
1.28E+18    45402   7350
1.28E+18    38596   7350
1.28E+18    37986   7350
1.28E+18    45402   7350
1.28E+18    45402   7350
1.28E+18    45402   7350
1.28E+18    45402   7350
1.28E+18    45402   7350
1.28E+18    45402   7350
1.28E+18    45402   7350
1.28E+18    45402   7350
1.28E+18    45402   7350
1.28E+18    37981   7350
1.28E+18    45402   7350
1.28E+18    45402   7350
1.28E+18    37981   7350

如何计算 Q 中每个 secid 的行数?像 sql 中的 select count(*) group by secid 之类的东西?

标签: kdb

解决方案


select count i by secid from tablename

这就是创建计数列的方式。它将返回 secid 和它们在表中出现的次数。可以将计数列重命名为“计数”,如下所示:

select counts:count i by secid from tablename

推荐阅读