Java Android:如何对SQLite数据库中的所有列求和并返回一个变量

Java Android:如何对SQLite数据库中的所有列求和并返回一个变量,java,android,database,sqlite,sum,Java,Android,Database,Sqlite,Sum,我的目标是对数据库中的所有列求和,并返回一个变量“total”=x amount 例如: column - food | taxi | clothes | sports 2 3 4 5 6 8 0 12 11 10 7 2 因此,总数将等于=70 我最初的想法是对各个列求和,最后将它们相加,例如对单个列求和: public

我的目标是对数据库中的所有列求和,并返回一个变量“total”=x amount

例如:

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列,有更好的方法吗?最好只有一个查询

在网上查看之后,您似乎可以做到这一点

选择食物、出租车、衣服,…,总和(食物+出租车+衣服+…)作为“我的总数”
从表中


来源:

您可以运行此查询:

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"));

在您的帖子中发布链接的相关内容以及说明。或者将链接作为评论发布,并根据您的意愿删除此答案,@Raghunandannot my wish。这篇文章出现在评论队列中,需要提醒版主注意,但最终会被删除,因为不鼓励只提供链接的答案。对我来说,这似乎有点违反直觉,因为这是内容的重复。也就是说,一旦链接在将来某个时候失效,你的答案将毫无价值。如果您在meta.stackoverflow.com上对本网站有任何进一步的问题。你可以在那里讨论。