Кортежи в моей таблице выглядят так: (значение, дата, атрибут). Теперь я хочу запросить базу данных и получить диапазон, но не в зависимости от даты, а от числа «последние х записей в диапазоне ...». Следующий пример должен пояснить: у меня есть панель времени, где все записи с атрибутом = «x» упорядочены по столбцу даты, поэтому дата точек s и t меньше, чем дата в точке 0 и дата в точке x и y, конечно, больше, чем в точке 0. Все точки имеют атрибут = "a".Как определить запрос диапазона в зависимости от количества?
s t 0 x y
------|--------|--|--|--------|------> t
Теперь я хочу, чтобы получить все записи со следующими характеристиками: Получить все записи с - т и х - у, где атрибут = «а» и выбрать с и т таким образом, что я получаю 60 записей в этом диапазоне выберите t таким образом, чтобы 5 записей находились между t и 0 и x и y соответственно.
Вот образец данных:
(xyz, 01.02.2000, a)
(xyz, 02.02.2000, a)
(xyz, 01.02.2000, b)
(xyz, 03.02.2000, a)
(xyz, 01.02.2000, b)
(xyz, 04.02.2000, a)
(xyz, 06.02.2000, a)
(xyz, 01.02.2000, b)
(xyz, 07.02.2000, a)
(xyz, 01.02.2000, b)
(xyz, 10.02.2000, a)
(xyz, 12.02.2000, a)
Нужный выход для даты = 06.02.2000 и диапазон й = 3, т-0 = 1 будет
s = (xyz, 01.02.2000, a)
(xyz, 02.02.2000, a)
t = (xyz, 03.02.2000, a)
(xyz, 04.02.2000, a) NOT because between t and 0 should be 1 free
0 = (xyz, 06.02.2000, a)
И в другом направление, «правое» направление на временной шкале точно такое же ...
В настоящее время я использую два запроса с порядком по дате и ограничениям (5, 60), но я бы предположил, что есть лучший способ ... Я только этого не знаю way ;-)
Просьба предоставить образцы данных и желаемый результат. – RedFilter