编写一个 Q-SQL 查询,将 BA.N 的价格乘以 2,GS.N 乘以 3,MSFT.O 乘以 4,并使用向量条件语句调用列 newPrice
Write a Q-SQL query to multiply the price of BA.N by 2, GS.N by 3 and MSFT.O by 4 and call the column newPrice using vector conditional statement
编写一个 Q-SQL 查询,将 BA.N 的价格乘以 2,GS.N 乘以 3,MSFT.O 乘以 4,并使用向量调用列 newPrice条件语句
tab2:`syms`prices!(`MSFT.O`GS.N`BA.N;45.15 191.10 178.50)
flip tab2
select syms,prices,newPrice:(prices*(4,3,2)) from flip tab2
您应该创建乘数图
(`MSFT.O`GS.N`BA.N!2 3 4)
并根据行符号将每个价格乘以地图中的值:
update newPrice: prices*(`MSFT.O`GS.N`BA.N!2 3 4)syms from flip tab2
我不确定使用条件向量是否是解决此问题的最简单方法。例如,您可以使用简单的字典来实现类似的效果。首先定义一个字典,将您的符号映射到它们的乘数,然后在您的 select 语句中使用该字典:
tab2: flip `syms`prices!(`MSFT.O`GS.N`BA.N;45.15 191.10 178.50)
d: `MSFT.O`GS.N`BA.N!4 3 2;
select syms, prices, newPrice: prices*d[syms] from tab2
syms prices newPrice
----------------------
MSFT.O 45.15 180.6
GS.N 191.1 573.3
BA.N 178.5 357
矢量条件只能 return 两个结果之一,具体取决于条件是真还是假。要将该限制扩展到您想要的,您可以将条件语句彼此嵌套。所以喜欢:
select syms, prices, newPrice: ?[syms=`MSFT.O; prices*4; ?[syms=`GS.N; prices*3; ?[syms=`BA.N;prices*2;prices]]] from tab2
但这很快就会变得笨拙并且无法很好地扩展。如果你添加更多的符号,更新字典会很容易,但更新条件很烦人。
编写一个 Q-SQL 查询,将 BA.N 的价格乘以 2,GS.N 乘以 3,MSFT.O 乘以 4,并使用向量调用列 newPrice条件语句
tab2:`syms`prices!(`MSFT.O`GS.N`BA.N;45.15 191.10 178.50)
flip tab2
select syms,prices,newPrice:(prices*(4,3,2)) from flip tab2
您应该创建乘数图
(`MSFT.O`GS.N`BA.N!2 3 4)
并根据行符号将每个价格乘以地图中的值:
update newPrice: prices*(`MSFT.O`GS.N`BA.N!2 3 4)syms from flip tab2
我不确定使用条件向量是否是解决此问题的最简单方法。例如,您可以使用简单的字典来实现类似的效果。首先定义一个字典,将您的符号映射到它们的乘数,然后在您的 select 语句中使用该字典:
tab2: flip `syms`prices!(`MSFT.O`GS.N`BA.N;45.15 191.10 178.50)
d: `MSFT.O`GS.N`BA.N!4 3 2;
select syms, prices, newPrice: prices*d[syms] from tab2
syms prices newPrice
----------------------
MSFT.O 45.15 180.6
GS.N 191.1 573.3
BA.N 178.5 357
矢量条件只能 return 两个结果之一,具体取决于条件是真还是假。要将该限制扩展到您想要的,您可以将条件语句彼此嵌套。所以喜欢:
select syms, prices, newPrice: ?[syms=`MSFT.O; prices*4; ?[syms=`GS.N; prices*3; ?[syms=`BA.N;prices*2;prices]]] from tab2
但这很快就会变得笨拙并且无法很好地扩展。如果你添加更多的符号,更新字典会很容易,但更新条件很烦人。