我的问题如下,我有一个这样设置的 Azure 表存储:
- 分区键:字符串
- 行键:数字
我想做一个查询,给定一个数字 X,我想为每个分区键返回小于 X 的最大数字行键。这是一种令人困惑的措辞,所以这里有一个例子:
分区键、行键
“你好”,7
“你好”,9
“你好”,12
“其他”,6
如果我用数字 10 进行查询,我想返回一个类似 [("hello", 9), ("other", 6)] 的列表。请注意,我只想要唯一的分区键和小于 10 的最大数字。
我可以为特定名称执行此操作,例如(为简洁起见,省略一些内容):
string orderFilter = TableQuery.GenerateFilterConditionForLong("RowKey", "le", 10);
string nameFilter = TableQuery.GenerateFilterCondition("PartitionKey", "eq", "hello");
TableQuery query = new TableQuery().Where(TableQuery.CombineFilters(orderFilter, "and", nameFilter));
IEnumerable<NameEntity> names = await nameTable.ExecuteQuerySegmentedAsync<NameEntity>(query, entityResolver, continuationToken);
// Get newest name
NameEntity newestName = names.Last();
但我似乎无法弄清楚如何使用所有不同的分区键来做到这一点。这可能在单个查询中吗?谢谢你的帮助!