簡體   English   中英

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

[英]coredata - fetch distinct rows having maximum value

我正在嘗試將我的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

我們是否可以使用獲取查詢本身對其進行排序(按速率降序排序)? 所以結果數組將是

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

將您的NSFetchRequestpropertiesToGroupBy屬性設置為包括“名稱”。

注意:為了使分組依據起作用,您可能還必須以某種方式匯總因子列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM