我的目标是对数据库中的所有列求和,并返回变量“总计” = 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/

10-12 05:20