Я хочу написать запрос, который будет содержать все строки со строковым значением «left» в столбце DIRECTION. Затем я хочу вернуть эту сумму.Как использовать SQLite COUNT в Android для возврата количества строк
В моем коде snip-it ниже предполагаются данные и база данных.
Вот прототип:
public int getSumLeft() {
String selectQuery = "SELECT COUNT("+TableData.TableInfo.DIRECTION+") WHERE "+TableData.TableInfo.DIRECTION+" = left";
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
cursor.moveToFirst();
int sum = cursor.getInt(0);
cursor.close();
return sum;
}
Я пробовал несколько запросов, и это один, кажется, закрывается на то, что мне нужно. Я думаю, проблема связана с выражением «int sum = cursor.getInt (0);»
Я думаю, что нулевой параметр переопределяет результаты. Когда я удаляю нуль, код прерывается. getInt - это функция SQLite, которая используется для доступа к данным в базе данных. Я не создал эту функцию. Но я должен использовать его или другую функцию.
Кроме того, нужно ли цитировать цикл вокруг запроса, чтобы переместить курсор для запроса COUNT? Разве база данных не считается для вас, поэтому нет необходимости в итерации?
Есть ли другой способ подсчета строк, где строковое значение «осталось», и сумма может быть возвращена?
Полный код здесь:
База данных: https://github.com/Leoa/Accelerometer/tree/AccelerometerDEV/app/src/main/java/thedatabase
Реализация (см кнопку в OnCreate функции): https://github.com/Leoa/Accelerometer/blob/AccelerometerDEV/app/src/main/java/com/leobee/accelerometer/MainActivity.java
Спасибо за глядя на это.