gpt4 book ai didi

kdb 如何在 select 中有一个条件总和

转载 作者:行者123 更新时间:2023-12-04 20:19:29 25 4
gpt4 key购买 nike

我怎样才能在 kdb 中有一个条件求和,类似于下面的 sql 查询

Select sum(qty > 0, qty, 0) as buy, sum(qty < 0, qty, 0) as sell from trades

我正在寻找一种无需任何 where 子句即可执行此操作的方法。

最佳答案

您可以在选择语句中使用内联 lambda 函数来实现此目的:

q)trades:([]sym:`a`b`c`d`e`f`g;qty:-34 -27 -11 50 19 -30 1)
q)select buy:sum {x where 0<x}[qty], sell:sum {x where 0>x}[qty] from trades
buy sell
--------
70 -102

更好的方法(有条件):

q)select buy:sum ?[qty>0;qty;0], sell:sum ?[qty<0;qty;0] from trades
buy sell
--------
70 -102

使用“最小”和“最大”运算符:

q)select buy:sum qty|0f,sell:sum qty&0f from trades
buy sell
--------
70 -102

关于kdb 如何在 select 中有一个条件总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43929865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com