aj[`time`sym;trade;quote] 正在使用先前的报价值加入每笔交易。
我想做同样的联接,但是引用的下一个值而不是上一个。
我该如何实现?
Q/KDB中有一些函数让我们在滑动窗口(msum,mavg等)上聚合.但是这些函数会考虑先前行的数量.
我想要一个可以在滑动窗口上聚合但有时间而不是行数的函数.例如在最后5分钟.
这样的功能存在吗?如果没有,我该如何设计呢?我不想使用while循环,因为它会因为大量数据而导致我的程序运行速度过慢.
谢谢您的帮助
我正在尝试编写SQLite语句以从用户输入(来自WPF日期选择器)获取最接近的日期时间.我有一个表IRquote(rateId,quoteDateAndTime,quoteValue).
例如,如果用户输入10/01/2000并且数据库仅在08/01/2000,07/01/2000和14/01/2000存储了修复,它将返回08/01/2000,是最接近的日期从2000年1月10日.
当然,我希望它不仅能用于约会,还能用于时间.
我尝试使用此查询,但它返回的行具有最远的日期,而不是最接近的日期:
SELECT quoteValue FROM IRquote
WHERE rateId = '" + pRefIndexTicker + "'
ORDER BY abs(datetime(quoteDateAndTime) - datetime('" + DateTimeSQLite(pFixingDate) + "')) ASC
LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
请注意,我有一个函数DateTimeSQLite来将用户输入转换为正确的格式.
我不明白为什么这不起作用.我怎么能这样做?谢谢你的帮助
我要收藏:
IEnumerable<lineResult> diplayedBondsList
Run Code Online (Sandbox Code Playgroud)
和
List<string> pIsinList
Run Code Online (Sandbox Code Playgroud)
lineResult是一个非常简单的类,定义如下:
Run Code Online (Sandbox Code Playgroud)public class lineResult { public string isin { get ; set ; } public double rate { get ; set ; } public string issuer { get ; set ; } }
我正在尝试使用pIsinList中的字符串创建一个新的List,但是只有当它们不在字段中时才是diplayedBondsList的"lineResult"元素.一种"左XOR"(左边是因为在另一个表中只添加了两个列表元素中的一个没有对应).
我试图不使用太多循环,因为我的列表有非常大量的数据,我认为这将减慢程序.
我写过这个,但它似乎不起作用,newBondLines总是空的:
IEnumerable<lineResult> newBondLines = diplayedBondsList.Where(item => pIsinList.IndexOf(item.isin) < 0);
foreach (lineResult lr in newBondLines)
{
newIsinList.Add(lr.isin);
}
Run Code Online (Sandbox Code Playgroud)
另外,我确实使用了一个循环,也许我可以通过一个很好的LINQ语句来避免它.
我怎么能1)使这个"左XOR"工作,2)提高速度?