kdb voolkup.从映射到大于x的最小val的表中获取值

chr*_*ise 1 kdb q-lang

假设我有一个字典

d:flip(100 200 400 800 1600; 1 3 4 6 10)
Run Code Online (Sandbox Code Playgroud)

如何创建一个返回大于x的最小键值的查找函数?给出一张桌子

tbl:flip `sym`val!(`a`b`c`d; 50 280 1200 1800)
Run Code Online (Sandbox Code Playgroud)

我想做点什么

{[x] : update new:fun[x[`val]] from x} each tbl
Run Code Online (Sandbox Code Playgroud)

最终在这样的桌子

tbl:flip `sym`val`new!(`a`b`c`d; 50 280 1200 1800; 1 4 10 0N)

sym val new
a   50    1
b   280   4
c   1200  10
d   1800
Run Code Online (Sandbox Code Playgroud)

eff*_*iae 5

阶梯词典可以帮助 http://code.kx.com/q/cookbook/temporal-data/#stepped-attribute

q)d:`s#-0W 100 200 400 800 1600!1 3 4 6 10 0N
q)d 50 280 1200 1800
1 4 10 0N
Run Code Online (Sandbox Code Playgroud)