use*_*786 7 java database sqlite android sum
我的目标是对数据库中的所有列求和并返回变量'total'= x amount.
例:
column - food | taxi | clothes | sports
2 3 4 5
6 8 0 12
11 10 7 2
Run Code Online (Sandbox Code Playgroud)
因此,总数将等于= 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;
}
Run Code Online (Sandbox Code Playgroud)
但我觉得这会有点费力,因为我的数据库中有13列,有更好的方法吗?最好只有1个查询.
您可以运行此查询:
Cursor c = db.rawQuery("SELECT Sum(food) + Sum(taxi) + Sum(clothes) + Sum(sports) AS myTotal FROM " + DATABASE_TABLE, null);
Run Code Online (Sandbox Code Playgroud)
代替
Cursor c = db.query(true, DATABASE_TABLE, ALL_KEYS, KEY_FOOD + "=?", new String[]{"sum(food)" + KEY_FOOD}, null, null, null, null);
Run Code Online (Sandbox Code Playgroud)
得到你的总数
Cursor c = sumFoodColumn();
int total = c.getInt(c.getColumnIndex("myTotal"));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8473 次 |
| 最近记录: |