我有以下功能,我试图获取一列中的所有整数并总计它们。不知道怎么做。
下面这段代码不起作用,因为对于测试我在表中放了两行而KEY_HITS列的数字是5和6,总数应该是11但是我得到4作为结果
public int getTotal() {
String[] columns = new String[] { KEY_ROWID, KEY_NAME, KEY_HITS };
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null,
null, null);
int total = 0;
int iHits = c.getColumnIndex(KEY_HITS);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
total = total + iHits;
}
return total;
}
答案 0 :(得分:7)
您可以直接创建sqlite查询:
Cursor cursor = sqliteDatabase.rawQuery(
"SELECT SUM(COL_VALUES) FROM myTable", null);
if(cursor.moveToFirst()) {
return cursor.getInt(0);
}
希望它会对你有所帮助。
答案 1 :(得分:1)
这是因为你要两次添加列索引。 你应该写
total= total + c.getLong(KEY_HITS);
答案 2 :(得分:1)
getColumnIndex返回给定列名的从零开始的索引,如果该列不存在,则返回-1。你应该有c.getInt(KEY_HITS)