У меня есть вопрос sql / sqlite. Мне нужно написать запрос, который выбирает некоторые значения из таблицы базы данных sqlite. Я всегда хочу, чтобы максимальное количество возвращаемых записей было равно 20. Если общее количество выбранных записей превышает 20, мне нужно выбрать 20 записей, которые распределены равномерно (без случайных чисел) по всем записям. Также важно, чтобы я всегда выбирал первое и последнее значение из таблицы при сортировке по дате. Эти записи должны быть вставлены первыми и последними в результате.
Я знаю, как сделать это в коде, но было бы идеально иметь запрос sqlite, который может сделать то же самое.
Запрос, который я использую сейчас, очень прост и выглядит следующим образом:
"SELECT value,date,valueid FROM tblvalue WHERE tblvalue.deleted=0 ORDER BY DATE(date)"
Если у меня, например, есть эти записи в талбе и для упрощения примера, максимальный результат, который я хочу получить - 5.
id value date
1 10 2010-04-10
2 8 2010-04-11
3 8 2010-04-13
4 9 2010-04-15
5 10 2010-04-16
6 9 2010-04-17
7 8 2010-04-18
8 11 2010-04-19
9 9 2010-04-20
10 10 2010-04-24
Результат, который я хотел бы получить, распределяется равномерно следующим образом:
id value date
1 10 2010-04-10
3 8 2010-04-13
5 10 2010-04-16
7 8 2010-04-18
10 10 2010-04-24
Надеюсь, что объясните, что я хочу, спасибо!