最近常使用到android的轻量级数据库sqlite3(adb下调试还是方便).
但是项目中需要统计数据库某一列的总和.
网上给的方式是,做一次查询,然后使用用Cusor做一个循环,自己计算.(虽然这种方法也行,但是略显逗比)
庆幸自己学数据库这门课的时候,没有睡过头.听到了"聚合函数"这四个字.
gettotalsize里使用了聚合函数sum
public Cursor gettotalsize() {
Cursor cursor = database.rawQuery("select sum(" + PACKAGE_SIZE
+ ") from " + TABLE_NAME + " as total", null);
return cursor;
}
看看怎么用这个函数吧,注意PACKAGE_SIZE的定义是String PACKAGE_SIZE = “size”;
Cursor cursor = dbServer.gettotalsize();
if (cursor.getCount() != 0) {
cursor.moveToFirst();
int total = cursor.getInt(cursor
.getColumnIndex("sum(size)"));
data.putString(MainActivity.SIZE_DISC_KEY,
String.valueOf(total));
} else {
data.putString(MainActivity.SIZE_DISC_KEY,
parseresultList.get(SIZE_INDEX));
}
看重点(无视掉其他没有的)
调试的时候发现rawQuery返回的Cursor里的Column就是select后面的聚合函数.
查找"sum(size)"这个ColumnIndex就能得到我们带有聚合函数的数据库查询返回的值.