Получение наибольшего значения строки среди нескольких записей - PullRequest
0 голосов
/ 03 мая 2019

Мой вопрос похож на следующий пост: Найти наибольшее значение среди повторяющихся записей в таблице sql

, но это для mysql, и я не могу понять, как это переводится в sqlite.

Я хочу получить максимальное значение pages из моей таблицы metadata с несколькими file_ids и несколькими записями

Моя таблица с двумя интересующими меня столбцами.

file_id  pages
1          2
1          5
2          10
3          20 
4          12
4          1
5          4
6          5
6          14 
7          12

Я ищу

file_id  pages
1          5
2          10
3          20 
4          12
5          4
6          14 
7          12

Я пытаюсь сделать запрос, но не знаю, как

String[]cols = {"file_id","pages"};
String groupBy = {"pages"};

все остальные параметры null насколько я могу подумать.

Каким будет запрос.Пожалуйста, помогите.

Я хочу запрос в обычном формате sqlite, а не необработанный запрос, если это возможно.

Ответы [ 3 ]

2 голосов
/ 03 мая 2019

Используется метод query():

String tableName = "metadata";
String[] cols = {"file_id", "max(pages) AS pages"}; 
String[] groupBy = {"file_id"};
Cursor cursor = db.query(tableName, cols, null, null, groupBy, null, null);

Замените db вашей переменной SQLiteOpenHelper.

1 голос
/ 03 мая 2019

Странный запрос M D выполняется. В списке выбора могут быть только групповой ключ и совокупный столбец, если вы используете group by. Так что страницы недействительны, выберите столбец.

Правильный запрос должен быть

SELECT file_id, MAX(pages) from tbl_test GROUP BY file_id
0 голосов
/ 03 мая 2019

Как насчет этого

ВЫБРАТЬ DISTINCT file_id, страницы из tbl_test GROUP BY file_id

Результат

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...