我知道如何在SQL中编写我需要的请求,但无法找到使用Core Data实现它的方法,或者如果我找到解决方案,它将是丑陋和混乱的,使用20+行代码…
我的请求是SELECT MAX(distance) FROM DataTrip WHERE idTrip = (SELECT DISTINCT(idTrip) FROM DataTrip);
任何想法我怎么能做到这一点使用Core Data与NSSortDescriptor, NSPredicate, NSExpressionDescription等?
谢谢!
更新1
DataTrip对象的数据模型:
@interface DataTrip : NSManagedObject {
@private
}
@property (nonatomic, retain) NSNumber * speed;
@property (nonatomic, retain) NSNumber * heading;
@property (nonatomic, retain) NSNumber * longitude;
@property (nonatomic, retain) NSNumber * timestamp;
@property (nonatomic, retain) NSNumber * latitude;
// More properties here
@property (nonatomic, retain) NSNumber * idTrip;
@property (nonatomic, retain) NSNumber * distance;
@end
因此,我的数据库中有多个行具有相同的idTrip,我想要每个idTrip的距离最大值
这个问题很难回答,因为它依赖于SQL和Core Data彼此有任何关系的假设。事实上,它们彼此之间几乎没有什么关系。Core Data不是数据库,也不应该被视为数据库。完成问题中指定的任务的方式高度依赖于所创建的数据模型。如果没有这些信息,就不可能提供更多有用的信息。