通过 Core Data 查询 max、min 等

Posted

技术标签:

【中文标题】通过 Core Data 查询 max、min 等【英文标题】:Querying max, min and other via Core Data 【发布时间】:2011-01-25 01:11:22 【问题描述】:

是否可以使用 Core Data 框架查询数据库的最大值、最小值和其他值?

【问题讨论】:

【参考方案1】:

您需要在目标 c 中使用集合运算符。更多信息在这里:http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/KeyValueCoding/Articles/CollectionOperators.html

【讨论】:

【参考方案2】:

您确实可以让NSFetchRequest 计算这些值。您需要将获取请求设置为返回 NSDictionaryResultType 结果,并创建适当的 NSExpressionDescription 对象来描述您所追求的操作(例如最小值、最大值、总和等)。

查看 Apple 核心数据编程指南中的示例:http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/Articles/cdFetching.html#//apple_ref/doc/uid/TP40002484-SW6。

【讨论】:

【参考方案3】:

你可以使用query builder,它允许你这样写你的请求:

NSDictionary *productTotalSumAndAveragePriceGroupedByCountries = 
[[[[[Product all
] aggregatedBy:@[
                 @[kAggregateSum, @"amount"],
                 @[kAggregatorAverage, @"price"]]
] groupedBy:@[@"country"]
] having:predicate
] execute];

【讨论】:

以上是关于通过 Core Data 查询 max、min 等的主要内容,如果未能解决你的问题,请参考以下文章

NSPredicate Core Data iOS 中的子查询

matlab如何不用max和min找出矩阵内的最大值和最小值

zip函数的使用

Laravel - 如何优化 MIN - MAX - orderBy 查询?

Django 查询模型 - GROUP BY、MIN、MAX

使用 min/max-width 和 min/max-device width 让多个媒体查询工作时遇到问题