coredata - 获取具有最大值的不同行
Posted
技术标签:
【中文标题】coredata - 获取具有最大值的不同行【英文标题】:coredata - fetch distinct rows having maximum value 【发布时间】:2015-11-03 05:18:40 【问题描述】:我正在尝试将我的 NSFetchRequest 设置为核心数据以检索“具有更高速率的唯一名称”的行
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"rate = max(rate)"];
[request setPropertiesToFetch:@[@"name"]];
request.predicate = predicate;
[request setReturnsDistinctResults:YES];
但上面只返回一行具有最大速率的行。
所需样品
name | rate | factor |
_______|______|________|
John | 3.2 | 7 |
Betty | 5.5 | 7 |
Betty | 7.1 | 2 |
Betty | 3.1 | 2 |
Edward | 5.5 | 1 |
Edward | 4.5 | 2 |
John | 4.3 | 4 |
我将如何设置返回数组的请求
John, 4.3, 4
Betty, 7.1, 2
Edward,5.5, 1
我们可以用 fetch 查询本身对其进行排序(按速率降序排序)吗?所以结果数组将是
Betty, 7.1, 2
Edward,5.5, 1
John, 4.3, 4
【问题讨论】:
【参考方案1】:将NSFetchRequest
的propertiesToGroupBy
属性设置为包含“名称”。
注意:您可能还必须以某种方式聚合因子列,以便 group by 起作用。
【讨论】:
顺便说一句,我无法获得“因子”的正确值。以上是关于coredata - 获取具有最大值的不同行的主要内容,如果未能解决你的问题,请参考以下文章