使用LitePal的聚合函数
LitePal中一共提供了count()、sum()、average()、max()和min()这五种聚合函数,基本上已经将SQL语句当中最常用的几种聚合函数都覆盖了,那么下面我们就来对这五种聚合函数的用法一一进行学习。
count()
count()方法主要是用于统计行数的,刚才演示了如何通过SQL语句来统计news表中一共有多少行,那么下面我们来看一下如何通过LitePal来实现同样的功能,代码如下所示:
- int result = DataSupport.count(News.class);
除此之外,LitePal中所有的聚合函数都是支持连缀的,也就是说我们可以在统计的时候加入条件语句。比如说想要统计一共有多少条新闻是零评论的,就可以这样写:
- int result = DataSupport.where("commentcount = ?", "0").count(News.class);
sum()
看完了count()方法应该是觉得非常简单吧,剩下的几个聚合函数也是同样简单的,我们继续来学习一下。
sum()方法主要是用于对结果进行求合的,比如说我们想要统计news表中评论的总数量,就可以这样写:
- int result = DataSupport.sum(News.class, "commentcount", int.class);
需要注意的是,sum()方法只能对具有运算能力的列进行求合,比如说整型列或者浮点型列,如果你传入一个字符串类型的列去求合,肯定是得不到任何结果的,这时只会返回一个0作为结果。
average()
average()方法主要是用于统计平均数的,比如说我们想要统计news表中平均每条新闻有多少评论,就可以这样写:
- double result = DataSupport.average(News.class, "commentcount");
同样地,average()方法也只能对具有运算能力的列进行求平均值,如果你传入了一个字符串类型的列,也是无法得到任何结果的,这时同样只会返回一个0作为结果。
max()
max()方法主要用于求出某个列中最大的数值,比如我们想要知道news表中所有新闻里面最高的评论数是多少,就可以这样写:
- int result = DataSupport.max(News.class, "commentcount", int.class);
那么不用多说,max()方法也只能对具有运算能力的列进行求最大值的,希望你在使用的时候能够谨记这一点。
min()
min()方法主要用于求出某个列中最小的数值,比如我们想要知道news表中所有新闻里面最少的评论数是多少,就可以这样写:
- int result = DataSupport.min(News.class, "commentcount", int.class);
现在我们已经将LitePal中所有聚合函数的用法全部都学习完了,怎么样,是不是感觉非常的简单?学完之后相信大家也意识到我在开篇的时候并不是在吹牛皮了,确确实实只需要一行代码就可以完成各种聚合查询操作了,上面任何一个统计操作我们都没有写到第二行代码。