我的目标是对数据库中的所有列求和,并返回变量“总计” = x数量。
例子:
column - food | taxi | clothes | sports
2 3 4 5
6 8 0 12
11 10 7 2
因此,总数等于= 70
我最初的想法是对各个列求和,最后将它们加在一起,作为对各个列求和的示例:
public Cursor sumFoodColumn(){
Cursor c = db.query(true, DATABASE_TABLE, ALL_KEYS, KEY_FOOD + "=?", new String[]{"sum(food)" + KEY_FOOD}, null, null, null, null);
if (c !=null) {
c.moveToFirst();
}
return c;
}
但是我觉得这有点麻烦,因为我的数据库中有13列,是否有更好的方法解决呢?最好只有1个查询。
最佳答案
您可以运行以下查询:
Cursor c = db.rawQuery("SELECT Sum(food) + Sum(taxi) + Sum(clothes) + Sum(sports) AS myTotal FROM " + DATABASE_TABLE, null);
代替
Cursor c = db.query(true, DATABASE_TABLE, ALL_KEYS, KEY_FOOD + "=?", new String[]{"sum(food)" + KEY_FOOD}, null, null, null, null);
得到你的总数为
Cursor c = sumFoodColumn();
int total = c.getInt(c.getColumnIndex("myTotal"));
关于java - Android:如何对SQLite数据库中的所有列求和并返回1个单个变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21970286/