Я пытаюсь заставить следующий sqlite-запрос работать в моей базе данных android, но он жалуется на пару ошибок.
@Query("with cte as (\n" +
" select t.exercise_name,t.band, t.reps, t.weight\n" +
" from ( \n" +
" select *,\n"+ "" +
" row_number() over (partition by band order by reps desc) rnreps,\n" +
" row_number() over (partition by band, reps order by weight desc) rnweight" +
" from tracked_exercises\n" +
" ) t \n" +
" where exercise_name = :name\n" +
") \n" +
"select * from cte c\n" +
"where not exists (\n" +
" select 1 from cte\n" +
" where band = c.band and reps > c.reps and weight >= c.weight\n" +
") \n")
List<TrackedExercise> getPersonalRecords(String name);
1 как раз перед скобкой перед разделом "<compound operator>, FROM, GROUP, LIMIT, ORDER, WHERE or comma expected, got '('"
И еще, когда я пытаюсь скомпилировать "error: no viable alternative at input 'with cte as...."
Мне удалось получить тот же запрос, работающий на скрипке здесь
Является ли row_number() over (partition'
предложение не поддерживается Room или я что-то упустил?
EDIT: только что нашел Android Room + Window Functions похоже, что эта функция доступна только в SQLite 3.25 и выше Android только идет до 3.19. Мне все еще интересно, есть ли у кого-нибудь идеи о том, как создать запрос, который делает то же самое без использования Windows Функции