- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑出价和要价并不总是同时更新的金融报价数据。我只想选择出价和要价都反射(reflect)新市场水平的行。在下表中,这对应于选择行 t1、t5、t7、t9。这样做有什么优雅的方法吗? (或者,我想排除 t2、t3、t4 行,它们对应于只有一个出价/要价被更新的时间)。
time bid ask
t1 12 13
t2 12 14
t3 12 14
t4 12 14
t5 13 14
t6 13 14
t7 14 15
t8 14 15
t9 13 14
最佳答案
这应该可以解决问题(还没有大量测试)
tab:([] time:`t1`t2`t3`t4`t5`t6`t7`t8`t9;bid:12 12 12 12 13 13 14 14 13;ask:13 14 14 14 14 14 15 15 14)
q)select from tab where differ {$[all x<y;y;x]}\[flip sums each differ each (bid;ask)]
time bid ask
------------
t1 12 13
t5 13 14
t7 14 15
t9 13 14
Another example which contains more edge cases:
tab:([] time:`g`b`b`b`b`g`b`b`g`b`g`g`b`g;bid:12 12 12 12 12 13 13 14 13 13 14 13 14 14;ask:13 13 14 15 14 14 14 14 15 16 16 15 15 16)
q)select from tab where differ {$[all x<y;y;x]}\[flip sums each differ each (bid;ask)]
time bid ask
------------
g 12 13
g 13 14
g 13 15
g 14 16
g 13 15
g 14 16
可能有一种更简洁的方法,但我现在会测试这种方法。
编辑:求和后进行翻转更有效 - 上面已更改。
我看过的一种以前的方法只使用了每列不同的 bool 值。这种方法可行(并且可能更直观),但在时间和内存方面效率较低,因此我会坚持采用与上述第一种方法接近的方法。
scanner:{if[all x;x:not x];$[(y&z)|(x[0]&z)|x[1]&y;11b;x|(y;z)]}
q)select from tab where all each scanner\[00b;differ bid;differ ask]
time bid ask
------------
t1 12 13
t5 13 14
t7 14 15
t9 13 14
关于KDB:选择对应于两个更新列的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25246750/
当我们使用 -s 时,主线程将一些工作委托(delegate)给从线程。 我在带有 3 个从属线程的 session 上运行以下代码:q -s 3 select from t where date w
我有一个像这样构建的表: tab: ([]col1:();col2:()) `tab insert (`testsym; "testchararr") 我现在想选择 col2 所在的行具有值 "tes
我有一个包含许多列的表(“ibmqt”),我想添加一个新列,其中包含 bool 值,指示每一行的一列(“bid”)是否大于或等于另一列列(“询问”)。 到目前为止,我最成功的尝试是: ibmqt: u
我想改造以下两行表格生成的: tb: ([] time: 2010.01.01 2010.01.01; side:`Buy`Sell; price:100 101; size:30 50) time
kdb有垂直输出吗?在 ClickHouse 中我可以指定 FORMAT VERTICAL SELECT * FROM foo FORMAT VERTICAL; Row 1: ────── date:
我将销售数据存储在数据库中。 sales_date 字段包含销售发生的日期。我想提取按月分组的数据,以便获得一月、二月等的汇总数据。有没有一种方法可以做到这一点,而不必提取整个数据然后手动执行? 最佳
kdb有垂直输出吗?在 ClickHouse 中我可以指定 FORMAT VERTICAL SELECT * FROM foo FORMAT VERTICAL; Row 1: ────── date:
我将销售数据存储在数据库中。 sales_date 字段包含销售发生的日期。我想提取按月分组的数据,以便获得一月、二月等的汇总数据。有没有一种方法可以做到这一点,而不必提取整个数据然后手动执行? 最佳
我曾多次听到人们谈论 KDB 几乎可以在短时间内处理数百万行数据。为什么这么快?这仅仅是因为数据都组织在内存中吗? 另一件事是有替代方案吗?有大型数据库供应商提供内存数据库吗? 最佳答案 快速 Goo
如何从 kdb 中每行有多个条目的其他 2 列计算一列加权平均值? 例如,给定下表: T:([]sym:`a`b`c;size:(2 8;5 2 10;3 7);price:(1 2;1 1 10;2
我有一个功能 quotes[ticker;startDate;endDate] ,以及一个函数 indexConstituents[index;startDate;endDate]产生以下内容: da
kdb 凡人/众神!! 我有一个日期时间字符串数组,但格式不同 > leads[`firstConversion] "Wed May 20 2020 08:56:54 GMT-0700 (PDT)"
我是 KDB/Q 的新手,对获取两行(不一定相邻)之间的差异有疑问。 我只有一张表,如下所示: q)tickers:`ibm`bac`dis`gs`ibm`gs`dis`bac q)pxs:100 5
q)t:flip `name`iq!(`Dent``Prefect;98 32 34) q)t name iq ---------- Dent 98 32 Prefect
假设我只想插入第一列和其他列为空。最快的方法是什么?并且可能有不同的类型。 假设有 10 列。这是我能想到的: `tab insert (`abcd;`;"";`;"";"";`;`;`;`;`;`)
我试图理解这一点: 100+\ 1 2 3 101 103 106 效果很好。 问题 1: 当我将它括在方括号中时,我得到了一个我没有预料到的错误: (100+\) 1 2 3 'Cannot wri
我在选择以下时间跨度时遇到问题: t:([] date:2#.z.d ; time: 10D21:28:47.425287000 10D12:18:23.287989000 ) date
有什么方法可以输入两个日期,然后会创建一个包括他们自己在内的日期列表? 例如。我要 2017.01.01 2017.01.02 .... 2017.01.10 我现在做的是 2017.01.01 +
我通过 .Q.dpft[] 将一张张开的表格写入磁盘。使用 \l 系统命令加载此表后,我可以从该表中 select,例如,select column_name from splayed_table w
我想在 kdb 表中添加一个新列,它应该基于现有列通过填充非空值来添加,如下所示 q)t:([]a:`a`b`c`d`e`f`g`h;b:1 0n 3 4 0n 6 0n 8;c:0n 2 0n 0n
我是一名优秀的程序员,十分优秀!