使用kdb按日期输出前几个记录

假设我有一个表,日期,符号和大小为列.日期按升序排列,每个日期的大小按降序排列.如何缩小表格,以便保留每个日期,只有前几个,比如10个记录?命令越简单越好.

提前致谢!

最佳答案
给出一张表:

q)show tbl:`date`val!/:(.z.d+til 3) cross 100+til 25;
    date       val
    --------------
    2016.10.31 100
    2016.10.31 101
    2016.10.31 102
    2016.10.31 103
    2016.10.31 104
    ..

按日期选择前N行:(以下示例中N = 2)

q)select from tbl where i in{raze y sublist/:group x}[date;2]
    date       val
    --------------
    2016.10.31 100
    2016.10.31 101
    2016.11.01 100
    2016.11.01 101
    2016.11.02 100
    2016.11.02 101

使用group函数 – 它将返回包含索引的字典,其中每个唯一值都出现.然后,该函数为每个唯一值检索前N个索引(sublist).

注意:我是kdb表中的隐式行索引.

转载注明原文:使用kdb按日期输出前几个记录 - 代码日志