2016-06-30 4 views
0

Я использую SQLite в Android (minSdkVersion: 15). У меня такой стол: TableПолучение списка строк с идентификатором, сгруппированным по другому идентификатору

Я пытаюсь получить список последних вставленных строк с параметром trainingId. Например, я хотел бы получить список последних добавленных строк с trainingId = 1 и результат должен быть:

13---5---1 14---5---1 15---5---1

или если trainingId = 2, то:

10---4---2 11---4---2 12---4---2

Я пытался что-то вроде это:

SELECT * FROM table_name JOIN (SELECT MAX(trainingDoneId) AS trainingDoneId FROM table_name GROUP BY treningId) USING (trainingDoneId) 

и

SELECT * FROM table_name WHERE trainingDoneId IN (SELECT MAX(trainingDoneId) FROM table_name GROUP BY 1) 

, но в обоих случаях я получаю эту ошибку:

android.database.sqlite.SQLiteException: aggregate functions are not allowed in the GROUP BY clause (code 1) 

Любые предложения?

+0

привет @ user3448282, сделал устранить проблему? – Vickyexpert

ответ

2

Пожалуйста, огонь ниже запроса, это поможет вам,

SELECT * FROM table_name where trainingId = 1 AND trainingDoneId in (select max(trainingDoneId) from table_name where trainingId = 1) 
+0

Спасибо, хорошее решение! – user3448282

+0

наслаждайтесь кодированием ... – Vickyexpert

0
SELECT id, MAX(trainingDoneId), trainingId FROM table_name WHERE trainingId = 1 ORDERBY id 

Попробуйте с этим решением

+0

Спасибо за ответ, но я получаю ошибку, что 'ORDER BY' должен быть до' HAVING', поэтому я переключил его, и теперь я получаю эту ошибку: 'near" HAVING ": синтаксическая ошибка (код 1):, при компиляции : SELECT * FROM SeriesDone WHERE traning_id = 1 ORDER BY id HAVING MAX (trainingDoneId) ' – user3448282

+0

SELECT * FROM table_name WHERE trainingId = 1 ORDERBY id HAVING trainingDoneId = (SELECT MAX (trainingDoneId) from table_name) попробуйте с этим –

+0

К сожалению, все тот же : 'near" HAVING ": синтаксическая ошибка (код 1): при компиляции: SELECT * FROM SeriesDone WHERE trainingId = 1 ORDER BY id HAVING trainingDoneId = (SELECT MAX (trainingDoneId) FROM SeriesDone)' – user3448282

Смежные вопросы