Android数据库(SQLite)框架(7)——使用LitePal聚合函数

来源:互联网 发布:热云数据融资 编辑:程序博客网 时间:2024/06/10 09:07

使用LitePal的聚合函数

LitePal中一共提供了count()、sum()、average()、max()和min()这五种聚合函数,基本上已经将SQL语句当中最常用的几种聚合函数都覆盖了。


1.count()

count()方法主要是用于统计行数的。刚才演示了如何通过SQL语句来统计person表中一共有多少行,那么下面我们来看一下如何通过LitePal来实现同样的功能,代码如下所示:

int result = DataSupport.count(Person.class);  

调用DataSupport类当中的count()方法,count()方法接收一个Class参数,用于指定去统计哪张表当中的数据,然后返回值是一个整型数据,也就是统计出的结果了。

除此之外,LitePal中所有的聚合函数都是支持连缀的,也就是说我们可以在统计的时候加入条件语句。比如说想要统计一共有多少条新闻是零评论的,就可以这样写:

int result = DataSupport.where("id> ?", "0").count(Person.class);  

1.sum()

sum()方法主要是用于对结果进行求和的。

int result = DataSupport.sum(Person.class, "count", int.class);  

第一个参数很简单,还是传入的Class,用于指定去统计哪张表当中的数据。第二个参数是列名,表示我们希望对哪一个列中的数据进行求合。第三个参数用于指定结果的类型,这里我们指定成int型,因此返回结果也是int型。

需要注意的是,sum()方法只能对具有运算能力的列进行求合,比如说整型列或者浮点型列,如果你传入一个字符串类型的列去求合,肯定是得不到任何结果的,这时只会返回一个0作为结果。


1.average()

average()方法主要是用于统计平均数的。

double result = DataSupport.average(Person.class, "count");  

average()方法接收两个参数,第一个参数不用说,仍然是Class。第二个参数用于指定列名的,表示我们想要统计哪一列的平均数。需要注意的是,这里返回值的类型是double型,因为平均数基本上都是会带有小数的,用double类型可以最大程序保留小数位的精度。

同样地,average()方法也只能对具有运算能力的列进行求平均值,如果你传入了一个字符串类型的列,也是无法得到任何结果的,这时同样只会返回一个0作为结果。


1.max()

max()方法主要用于求出某个列中最大的数值

int result = DataSupport.max(Person.class, "count", int.class);  

max()方法接收三个参数,第一个参数同样还是Class,用于指定去统计哪张表当中的数据。第二个参数是列名,表示我们希望统计哪个列中的最大值。第三个参数用于指定结果的类型,根据实际情况来选择传入哪种类型就行了。

那么不用多说,max()方法也只能对具有运算能力的列进行求最大值的,希望你在使用的时候能够谨记这一点。


1.min()

min()方法主要用于求出某个列中最小的数值

int result = DataSupport.min(Person.class, "count", int.class);  

同max();


转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/40614197

阅读全文
0 0