我想总结特定表中的所有列值,并将总数作为double。这是我目前的功能
public String sumAll() {
float columntotal = 0;
String[] columns = new String[] {KEY_RPI,
KEY_RLP, KEY_RSK, "sum("+ KEY_RNP +")", KEY_RTP};
Cursor c = mDb.query(PENGELUARAN_TABLE, columns, null, null, null,
null, null);
if (c != null) {
c.moveToFirst();
columntotal = c.getFloat(0);
}
String sumtotal = Float.toString((float)columntotal);
return sumtotal;
}
但上面的函数只是给我表中列的总数。我怎样才能修改这些函数,以便返回列的总值?
答案 0 :(得分:0)
除非简单列在GROUP BY
子句中,否则聚合函数不能与简单列一起使用。提供groupBy
参数或从查询中删除除sum(KEY_RNP)
编辑:SQLite实际上允许没有GROUP BY
子句的聚合查询,但非聚合列的结果是随机选择的,并不是特别有用。
如果SELECT语句是没有GROUP BY子句的聚合查询,则结果集中的每个聚合表达式将在整个数据集中进行一次求值。对于任意选择的数据集行,对结果集中的每个非聚合表达式求值一次。对于每个非聚合表达,使用相同的任意选择的行。或者,如果数据集包含零行,则针对完全由NULL值组成的行评估每个非聚合表达式。