Swift 使用CoreData聚合操作

Swift 使用CoreData聚合操作,swift,core-data,nsexpression,Swift,Core Data,Nsexpression,我有一个CoreData“数据库”,为了简化,让我们假设我的对象有两个属性:一个变量名和一个变量值。我想通过“变量名”(“GROUP by”)聚合DB的内容,对于每个变量“名称”,我想找到变量值的标准偏差。为此,我使用N表达式: expressionDescription.expression=NSExpression(格式:“valeur_nombre@stddev”) 问题是我遇到了以下错误: [错误]CoreData:在过程中捕获异常 NSPersistentStoreCoordinato

我有一个CoreData“数据库”,为了简化,让我们假设我的对象有两个属性:一个变量名和一个变量值。我想通过“变量名”(“GROUP by”)聚合DB的内容,对于每个变量“名称”,我想找到变量值的标准偏差。为此,我使用N表达式: expressionDescription.expression=NSExpression(格式:“valeur_nombre@stddev”)

问题是我遇到了以下错误:

[错误]CoreData:在过程中捕获异常 NSPersistentStoreCoordinator-performBlock:无法生成选择 表达式的目标标记:valeur_nombre@stddev with userInfo (空)

我尝试将相同的代码用于不同的“聚合操作”: -计数 -总数 -马克斯 -闵 没有问题。然而,当我试图计算平均值时,就像在苹果文档中写的那样: expressionDescription.expression=NSExpression(格式:“valeur_nombre.@average”)

我得到这个错误:

[错误]CoreData:在过程中捕获异常 NSPersistentStoreCoordinator-performBlock:无法生成选择 表达式的目标标记:valeur_nombre.@average with userInfo (空)

如果我将“平均值”替换为“平均值”: expressionDescription.expression=NSExpression(格式:“valeur_nombre@avg”) 然后我得到了正确的结果 不幸的是,我没有找到任何解决方法: -中间带 -stddev


有人能帮我吗?

试试NSExpression(格式:“stddev:(valeur_nombre)”)。谢谢,但不幸的是,我得到了以下错误:CoreData:在NSPersistentStoreCoordinator-performBlock期间捕获了异常:不支持的函数类型传递到SQL存储,并带有用户信息{“Bad value”=“stddev:(valeur_nombre)”;}核心数据SQLite存储似乎不支持stddev。我必须首先加载内存中的数据,但是我有很多数据,我不知道最有效的方法