列值之和

时间:2013-06-15 17:08:42

标签: android sqlite

我想总结特定表中的所有列值,并将总数作为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;
}

但上面的函数只是给我表中列的总数。我怎样才能修改这些函数,以便返回列的总值?

1 个答案:

答案 0 :(得分:0)

除非简单列在GROUP BY子句中,否则聚合函数不能与简单列一起使用。提供groupBy参数或从查询中删除除sum(KEY_RNP)

之外的所有列

编辑:SQLite实际上允许没有GROUP BY子句的聚合查询,但非聚合列的结果是随机选择的,并不是特别有用。

  

如果SELECT语句是没有GROUP BY子句的聚合查询,则结果集中的每个聚合表达式将在整个数据集中进行一次求值。对于任意选择的数据集行,对结果集中的每个非聚合表达式求值一次。对于每个非聚合表达,使用相同的任意选择的行。或者,如果数据集包含零行,则针对完全由NULL值组成的行评估每个非聚合表达式。