coredata - 获取具有最大值的不同行

时间:2015-11-03 05:18:40

标签: ios objective-c core-data

我试图将我的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查询本身对它进行排序(按速率desc排序)吗?所以结果数组将是

Betty, 7.1, 2
Edward,5.5, 1
John,  4.3, 4

1 个答案:

答案 0 :(得分:0)

propertiesToGroupBy的{​​{1}}属性设置为包含“name”。

注意:您可能还需要以某种方式聚合因子列,以便分组工作。