kdb 从整数除法中获取浮点数
kdb getting float from integer division
我有一个table
id, turnover, qty
我想查询
select sum turnover, sum qty, (sum turnover) div (sum qty) by id from Table
然而,除法的结果值似乎是一个整数并显示为 0(因为单价比 1 小很多)。我试图将结果转换为浮点数,但这无济于事
select sum turnover, sum qty, `float$(`float$(sum turnover) div `float$(sum qty)) by id from Table.
如何在 return 中获得浮动?
另外,作为附带问题。我如何命名该列(相当于 sql select sum(x) as my_column_name ...)
这是 div 的预期输出,您应该使用 % 到 divide 数字 - 始终 returns 浮点数。
q)200 div 8.5
22
q)200%8.5
23.52941
q)
参考这里;
Div: http://code.kx.com/q/ref/arith-integer/#div
%: http://code.kx.com/q/ref/arith-float/#divide
*编辑
抱歉 - 忘记参考您问题的其余部分。在您的示例中,您正在计算总营业额和总数量两次 - 如果您处理大量记录,您将希望避免这种情况。
这个怎么样;
q)show trade:([] id:(`$"A",'string[til 10]);turnover:10?til 10; qty:10?100+til 200)
id turnover qty
---------------
A0 4 152
A1 4 238
A2 2 298
A3 2 268
A4 7 246
A5 2 252
A6 0 279
A7 5 286
A8 7 245
A9 5 191
q)update toverq:sumT%sumQ from select sumT:sum turnover,sumQ:sum qty by id from trade
id| sumT sumQ toverq
--| ---------------------
A0| 4 152 0.02631579
A1| 4 238 0.01680672
A2| 2 298 0.006711409
A3| 2 268 0.007462687
A4| 7 246 0.02845528
A5| 2 252 0.007936508
A6| 0 279 0
A7| 5 286 0.01748252
A8| 7 245 0.02857143
A9| 5 191 0.02617801
我有一个table
id, turnover, qty
我想查询
select sum turnover, sum qty, (sum turnover) div (sum qty) by id from Table
然而,除法的结果值似乎是一个整数并显示为 0(因为单价比 1 小很多)。我试图将结果转换为浮点数,但这无济于事
select sum turnover, sum qty, `float$(`float$(sum turnover) div `float$(sum qty)) by id from Table.
如何在 return 中获得浮动? 另外,作为附带问题。我如何命名该列(相当于 sql select sum(x) as my_column_name ...)
这是 div 的预期输出,您应该使用 % 到 divide 数字 - 始终 returns 浮点数。
q)200 div 8.5
22
q)200%8.5
23.52941
q)
参考这里; Div: http://code.kx.com/q/ref/arith-integer/#div %: http://code.kx.com/q/ref/arith-float/#divide
*编辑
抱歉 - 忘记参考您问题的其余部分。在您的示例中,您正在计算总营业额和总数量两次 - 如果您处理大量记录,您将希望避免这种情况。
这个怎么样;
q)show trade:([] id:(`$"A",'string[til 10]);turnover:10?til 10; qty:10?100+til 200)
id turnover qty
---------------
A0 4 152
A1 4 238
A2 2 298
A3 2 268
A4 7 246
A5 2 252
A6 0 279
A7 5 286
A8 7 245
A9 5 191
q)update toverq:sumT%sumQ from select sumT:sum turnover,sumQ:sum qty by id from trade
id| sumT sumQ toverq
--| ---------------------
A0| 4 152 0.02631579
A1| 4 238 0.01680672
A2| 2 298 0.006711409
A3| 2 268 0.007462687
A4| 7 246 0.02845528
A5| 2 252 0.007936508
A6| 0 279 0
A7| 5 286 0.01748252
A8| 7 245 0.02857143
A9| 5 191 0.02617801