示例:我有以下数据集:
date eur usd aud
------------------------------
2015-01-01 0.5 1.0 1.5
2015-01-02 0.6 1.1 1.6
2015-01-03 0.4 1.0 1.3
....
2015-02-01 0.5 1.0 1.5
2015-02-02 0.6 1.1 1.6
2015-02-03 0.4 1.0 1.3我的目标是计算一年中每周欧元/美元的平均比率。我期望得到以下结果:
avg eur / usd:
------------------
Week 1 0.5
Week 2 0.54
Week 3 0.4为了计算欧元/美元的定额,我增加了NSExpression。以下是代码:
let usdExpression = NSExpression(forKeyPath: "usd")
let eurExpression = NSExpression(forKeyPath: "eur")
let ratioExpression = NSExpression(forFunction: "divide:by:", arguments: [usdExpression, eurExpression])
let avgRatioExpression = NSExpression(forFunction: "average:", arguments: [ratioExpression])我将表达式添加到获取请求。现在我要按周分组。我不把星期存储在数据库里(我只有约会)。我在我的模型中添加了transient property,并在那里实现了逻辑:
var weekOfYear {
var numberOfWeek: Int?
...
return "Week \(numberOfWeek)"
}但我不能按这个财产分组。那么,有任何方法可以接收分组值吗?如果不是,似乎我的表情是无用的。
发布于 2015-09-19 09:10:18
您不能按瞬态进行分组,因为它实际上并不存储在SQL中。您可以使您的临时值为持久值,并更新存储中的所有记录,然后可以将其用于获取。这可能是最好的方法,因为星期数不会改变,而且是一小块数据,而且数据会越来越多地进入内存,或者运行多个获取将需要越来越长的时间。
https://stackoverflow.com/questions/32648302
复制相似问题