android – SQLITE SUM和LIMIT似乎没有合作

我正在尝试从SQLITE中检索列的总和.我能够成功地获得它.
但是当我尝试仅检索10行的总和时,它会再次返回整列的总和.但查询似乎是正确的.

public String getUnitsForWeek(Context context) throws IOException {
    DataBaseHelper dbHelper = new DataBaseHelper(context);

    String query = "SELECT sum(UNITS) FROM SERVICE_TABLE order by id DESC limit 7";
    return String.valueOf(dbHelper.getString(query));

}

dbHelper.getString方法是:

public int getString(String query) {
    String mypath = DB_PATH + DB_NAME;
    SQLiteDatabase database = SQLiteDatabase.openDatabase(mypath, null, 
            SQLiteDatabase.OPEN_READWRITE);
    Cursor cursor = null;

    int i;

    cursor = database.rawQuery(query, null);


    cursor.moveToFirst();
    i= cursor.getInt(cursor.getColumnIndex(cursor.getColumnName(0)));
    return i;

}

谢谢.

最佳答案
SUM是一个聚合函数,它将来自多行的数据合并为一个.由于只有一个结果行,LIMIT和ORDER BY无意义.

要在具有最高ID的7行上对UNITS求和,可以使用子选择:

SELECT SUM(UNITS) FROM (SELECT UNITS FROM SERVICE_TABLE ORDER BY id DESC LIMIT 7);

转载注明原文:android – SQLITE SUM和LIMIT似乎没有合作 - 代码日志