Как подсчитать общее количество строк при добавлении лимита в Android SQLite - PullRequest
2 голосов
/ 18 марта 2019

Я использую SQLITE в Android, и у меня возникла проблема, я хочу получить общее количество строк при применении лимита. Например, если я применяю ограничение 100 для нумерации страниц, но есть около 2000 данных. Я хочу сделать запрос, в котором я могу получить только 100 строк, но счетчик должен вернуть 2000, то есть общее количество строк. Вещи, которые я пробовал

SELECT * ,count(*) OVER() AS full_count FROM table LIMIT 0,100

SELECT SQL_CALC_FOUND_ROWS, * FROM table LIMIT 0,100

Я знаю, что есть вложенный запрос, который будет работать, но у меня есть около 2 миллионов строк, и для разбивки на страницы я получаю только 100 строк за раз. Таким образом, вложенный запрос полностью замедлит процесс.

1 Ответ

0 голосов
/ 18 марта 2019

Используйте CTE , чтобы получить общее количество строк:

with cte as(
  select count(*) total from table 
)
select *, (select total from cte) total
from table limit 0, 100
...