0

我想总结特定表中的所有列值并将总数作为双倍。这是我目前的功能

  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;
}

但是上面的函数只是给了我表格中列的总数。我如何修改这些函数以返回列的总值?

4

1 回答 1

0

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

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

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

于 2013-06-15T17:33:07.790 回答