如何使用“DBAccess”iOS ORM执行计数和求和操作

如何使用“DBAccess”iOS ORM执行计数和求和操作,ios,objective-c,orm,dbaccess,Ios,Objective C,Orm,Dbaccess,我正在使用带有Xcode 7.0.1的DBAccess framework v1.6.12 我想选择两个属性的总和和计数,很像下面的查询,只是ORM没有原始SQL接口: SELECT SUM(bed_in_datetime - bed_out_datetime) AS sum_bed_in ,COUNT(bed_in_datetime) AS cnt_bed_in FROM sleep_tbl; 是否有一种方法可以使用DBAccess实现它。ORM没有选择的概念,因为您处理的是整个类对

我正在使用带有Xcode 7.0.1的DBAccess framework v1.6.12

我想选择两个属性的总和和计数,很像下面的查询,只是ORM没有原始SQL接口:

SELECT
  SUM(bed_in_datetime - bed_out_datetime) AS sum_bed_in
 ,COUNT(bed_in_datetime) AS cnt_bed_in
FROM
 sleep_tbl;

是否有一种方法可以使用DBAccess实现它。

ORM没有选择的概念,因为您处理的是整个类对象,而不是SQL,但是DBQuery对象上有SUM、COUNT、GROUP BY&id方法,这些方法从查询返回数据子集

这必须分两个阶段完成,但不会对执行查询所需的时间产生太大影响

但第一个元素的执行方式如下:

double sum = [[sleep_tbl query] sumOf:@"(bed_in_datetime - bed_out_datetime)"];
int count = [[sleep_tbl query] count];
伯爵是这样说的:

double sum = [[sleep_tbl query] sumOf:@"(bed_in_datetime - bed_out_datetime)"];
int count = [[sleep_tbl query] count];

谢谢你的评论。DBAccess版本是我的打字错误。我使用的不是1.6.2,而是1.6.12。好的,我将尝试使用sumOf方法和count方法。为了提高搜索效率,我可以使用视图吗?不,DBAccess中没有视图。为了效率?您的意思是只返回数据的一个子集以使用更少的内存吗?因为如果是这样,那就是-DBResultSet*fetchlightweightsprefetchingproperties:NSArray*properties;`。这将仅选择您指定的属性,并在需要时查询对其他属性的任何访问权限。谢谢您的评论。我的目标是获得每月平均值,如:从睡眠中选择平均a-b、平均c-d、平均e-f、平均g-h,其中年份=2015,月份=10;你能给我一些提示吗?为此,我会维护一个平均值表。或者你可以把总数除以计数,这仍然是相当快的。!因为你已经拥有了这两部分。