在DolphinDB中,我可以使用sqlDS
通过提供SQL元代码来生成数据源。通常,sqlDS
将返回一个元组,其中每个元素对应于数据库中的分区。
有时候我已经知道需要哪些分区,不需要分区,但是sqlDS
将始终返回所有可能的数据源。我想知道是否可以选择分区,并让sqlDS
仅在那些分区中返回数据源。
例如,我有一个数据库和一个像这样的表:
db = database("test", VALUE, 2019.01M 2019.02M 2019.03M 2019.04M)
t = table(2019.01.01T01:23:45 2019.02.01T01:23:45 2019.03.01T01:23:45 2019.04.01T01:23:45 as time)
pt = db.createPartitionedTable(t, `t, `time)
pt.append!(t)
pt = db.loadTable(`t)
我想使用sqlDS
仅在分区2019.03M
中生成数据源:
sqlDS(<select * from pt where month(time) = 2019.03M>)
DolphinDB似乎不知道此查询将仅从分区2019.03M
中检索数据,而我得到的是一个包含4个元素的元组:
(
DataSource< select [7] * from pt where month(time) == 2019.03M [partition = 201901M] >,
DataSource< select [7] * from pt where month(time) == 2019.03M [partition = 201902M] >,
DataSource< select [7] * from pt where month(time) == 2019.03M [partition = 201903M] >,
DataSource< select [7] * from pt where month(time) == 2019.03M [partition = 201904M] >
)
我真正想要的是只有一个这样的元素的元组:
(
DataSource< select [7] * from pt where month(time) == 2019.03M [partition = 201903M] >
)
我阅读了sqlDS
函数的文档,但似乎没有提供控制分区选择的参数。我想知道在调用sqlDS
时是否有一种很好的方法来限制分区的选择。