我正在解决 fby 的经典问题,以从交易表中找到每个符号的最高价格。
表:tr
time sym src price size
-------------------------------------------------
2019.03.11D09:00:00.277000000 GOOG L 36.01 1427
2019.03.11D09:00:04.123000000 GOOG O 36.01 708
2019.03.11D09:00:08.123000000 MSFT N 35.5 7810
2019.03.11D09:00:10.123000000 MSFT O 31.1 1100
Run Code Online (Sandbox Code Playgroud)
当我申请 fby 时:
select from tr where price=(max;price) fby sym
Run Code Online (Sandbox Code Playgroud)
输出是:
time sym src price size
-------------------------------------------------
2019.03.11D09:00:00.277000000 GOOG L 36.01 1427
2019.03.11D09:00:04.123000000 GOOG O 36.01 708
2019.03.11D09:00:08.123000000 MSFT N 35.5 7810
Run Code Online (Sandbox Code Playgroud)
但是,正如我们所看到的,我进行了两次 sym GOOG 交易,因为最高价格是相同的。因此,现在我想获得每个符号的输出以及每个符号的最后交易时间(以及最大价格)。所以,我使用下面的查询
select from (select from tr where price=(max;price) fby sym) where time=(last;time) fby sym
Run Code Online (Sandbox Code Playgroud)
获取输出: …
While fetching a subset of data from a table when I use sublist or take operator(#), most of the times take operator is slow compared to sublist function.
5 observations posted in comment after querying table t in hdb which consists of 231131 rows and 71 cols.
\t 10000 10 sublist select from t where date=.z.d-5 /Time taken - 62j 92j 68j 63j 65j
\t 10000 10#select from t where date=.z.d-5 / Time taken - 544j 546j 567j 569j 585j …Run Code Online (Sandbox Code Playgroud) 我有一张桌子:
q)t:([] a:1 2 3; b:```; c:`a`b`c)
a b c
-----
1 a
2 b
3 c
Run Code Online (Sandbox Code Playgroud)
从此表中,我只想选择不具有空值的列,在这种情况下,输出中应该省略列b(类似于pandas中的dropna方法)。
expected output
a c
---
1 a
2 b
3 c
Run Code Online (Sandbox Code Playgroud)
我尝试了很多类似的事情
select from t where not null cols
Run Code Online (Sandbox Code Playgroud)
但没有用。
我必须编写一个shell脚本,使用其他用户名ssh到另一台服务器而不实际要求用户输入密码?由于约束,我无法使用基于密钥的身份验证.让源服务器 - abc.efg.com源用户名 - 汤姆源密码 - tom123
目标服务器 - xyz.efc.com目标用户名 - bob目标密码 - bob123
我必须将bash脚本放在源服务器中.如果可以使用expect工具和/或sshpass完成某些事情,请告诉我.
我可以在bash脚本中对目标服务器的密码进行硬编码,但我无法承担交互式会话,只是当我运行脚本时,我想看到目标服务器使用另一个用户名登录.
提前致谢.
如何从字符串中删除空格和下划线?
Input String:
s:"Monday comes_after Sunday";
Expected Output:
"MondaycomesafterSunday"
Run Code Online (Sandbox Code Playgroud) 我尝试从q函数调用k的count函数,但是它给出了错误。
{
"k)"# 1 2 3 4 5 //~ count 1 2 3 4 5
}[]
Run Code Online (Sandbox Code Playgroud)
因此,我有以下问题:
1.是否可以在q脚本中编写k代码?
2.如果是,那么我们如何在q脚本中编写k个代码?在q脚本/函数中使用k代码是否会使脚本/函数更高效和更优化?
我们有一个表t如下
q)t:([] sym:10?`GOOG`AMZN`IBM; px:10?100.; size:10?1000; mkt:10?`ab`cd`ef)
Run Code Online (Sandbox Code Playgroud)
我们的要求是,如果“ mkt”列的值为“ ef”,则按“ sym”列对表“ t”进行“分组”,对于其余市场(“ ab`cd”),我们需要所有值(而不是“分组” )。对于此用例,我在下面编写了可以按预期工作的查询,
q)(select px, size, sym, mkt from select by sym from t where mkt=`ef), select px, size, sym, mkt from t where mkt in `ab`cd
Run Code Online (Sandbox Code Playgroud)
请以一种方式帮助我优化上述查询,即
sudo code -
if mkt=`ef:
then use group by on table
else if mkt in `ab`cd
don't use group by on table
Run Code Online (Sandbox Code Playgroud) 当我在查询下面运行以获取表的计数时,运行查询所需的大小和时间几乎相同。/表t有97029个记录和124个列
Q.1。-以下查询中的第i列是否使用has函数在内部使用唯一属性在恒定时间内返回输出?
\ts select last i from t where date=.z.d-5 / 3j, 1313248j
/ time taken to run the query and memory used is always same not matter how many times we run same query
Run Code Online (Sandbox Code Playgroud)
当我运行以下查询时:
第一次所需的时间和内存很高,但是从下一次运行开始,所需的时间和内存却很少。
Q.2。第一次运行查询时,kdb是否缓存输出,并在下次显示来自缓存的输出?
Q.3在查询下面运行时,是否在第i列上应用了属性?
\ts select count i from t where date=.z.d-5 / 1512j, 67292448j
\ts select count i from t where date=.z.d-5 / 0j, 2160j
Run Code Online (Sandbox Code Playgroud)
在以下查询中运行时:
Q.4在以下查询中运行时,第i列是否应用了任何属性?
\ts count select from t where date=.z.d-5 / 184j, 37292448j
/time taken to run the query and …Run Code Online (Sandbox Code Playgroud) 由于我们在Java中有try-catch,因此我可以在q kdb中找到trap-at。
但是我的要求是try-catch-finally,即在try块中,我打开odbc连接,最后我要关闭odbc连接。
Sudo code:
try{
con=openODBCConnection(dbName);
//n statements;
}catch(Exception e){
catchingNotSoImpException(e)
}finally{
closeODBCCon(con);
}
Run Code Online (Sandbox Code Playgroud) kdb 有什么方法可以读取 csv 文件,就像 pandas 中的 read_csv() 函数一样简单。
我通常使用类似下面的代码来读取 kdb 中的 csv
("I*FS";enlist ",")0:`:a.csv / where a.csv is a csv file with Integer, String, Float and Symbol columns
Run Code Online (Sandbox Code Playgroud)
很多时候在实际情况下,我们要读取的csv文件有超过100列,那么很难提供列类型来运行。
kdb 有没有办法读取 csv,其中 kdb 可以自行理解列的类型?就像是
("*";enlist ",")0:`:a.csv / this fails
Run Code Online (Sandbox Code Playgroud)