我有一张桌子:
q)t:([] sym:`AAPL`MSFT`AMZN`AAPL`MSFT`AMZN; px:1 2 3 11 22 33; sh:100 200 300 1000 2000 3000)
Run Code Online (Sandbox Code Playgroud)
我想通过sym获得最后的px和sh,可以使用last函数两次获得它:
q)select last px, last sh by sym from t
sym | px sh
----| -------
AAPL| 11 1000
AMZN| 33 3000
MSFT| 22 2000
Run Code Online (Sandbox Code Playgroud)
我们如何只使用一次last关键字来获得高于输出的结果?(因为在实际情况下,有时需要在30列以上使用last)
我的失败尝试:
q)select last (px;sh) by sym from t
q)select {last x}@'(px;sh) by sym from t
Run Code Online (Sandbox Code Playgroud)
对于这样的情况,使用by短语而不选择任何列与将last应用到所有列相同。
select by sym from t
Run Code Online (Sandbox Code Playgroud)
应该做的把戏
q)(select last px, last sh by sym from t)~select by sym from t
1b
Run Code Online (Sandbox Code Playgroud)