Попробуйте это:
fastify.get('/app/name', {
schema: {
querystring: {
id: { type: 'integer' },
name: { type: 'string' },
_: { type: 'integer' },
}
},
},
(request, reply) => {
...
Если я считал это право, Вы не ищете измененные строки, но строки, где уровень изменяется с предыдущей даты. Этот запрос или что-то как он должны сделать это:
SELECT r1.Code, r1.Date, r1.Rate
FROM RateTable r1
WHERE r1.Rate <> (SELECT TOP 1 Rate
FROM RateTable
WHERE Date < r1.Date
ORDER BY Date DESC)
Если Ваш RDBMS поддерживает аналитические функции затем, оптимальный метод - почти наверняка это:
select code, date, rate, last_rate
from
(
select code,
date,
rate,
lag(rate) over (partition by code order by date) last_rate
from ratetable
) my_tb
where my_tb.rate != my_tb.last_rate
Добавьте новый столбец, который будет DateTime и отследит когда измененный уровень. Затем можно просто возвратить любые столбцы кто DateModified> = x.. Где x является прошлым разом, когда Вы проверили.
Я добавил бы столбец [ModifiedDate] к Вашей таблице и обновлению, это - значение каждый раз, когда новая запись вставляется или обновляется. Затем Вы сможете получить данные из таблицы на основе того столбца:
SELECT * FROM [YourTable] WHERE [ModifiedDate] > '2008-01-20 10:20'
Если Вы добавляете новый столбец "LastChangedDate", и Вы отслеживаете последнее чтение в другой таблице (т.е. LastReadedValues), чем Вы можете easly отслеживать изменения.
как насчет этого подхода парни?
добавьте немного столбца под названием ChangedSinceLastRead, установите его на 1 каждый раз, когда Вы изменяете значение в этой таблице и в Вашем ВЫБОРЕ "чтения запроса Select * ОТ Уровня ГДЕ ChangedSinceLastRead = 1"
после этого огня запроса Select другой запрос "ЧАСТОТА ОБНОВЛЕНИЯ УСТАНОВИЛ ChangedSinceLastRead = 0"
хотя необходимо запустить 1 дополнительный запрос на обновление в это, Вы не должны вычислять против дат в Вашем выборе, и Ваше устройство хранения данных таблицы занимает меньше места (поскольку бит меньше к дате и времени),
просто другой способ решить это ;-) я хотел бы видеть последствия производительности этого, а также вышеупомянутого предложенного подхода даты и времени
Я советовал бы, если Вы управляете этим в этой точке только к правильным данным держателя для книг. Другими словами, только запишите запись на таблицу, когда уровень изменится. Можно затем предположить, что любые данные между изменениями останутся такими же. Это значительно уменьшит объем данных, который необходимо сохранить.
Тем не менее этот запрос, или что-то закрывается, что-то для выполнения то, что Вы просите:
select rt.Code, MIN(rt.Date), rt.Rate
from RateTable rt
group by rt.Code, rt.Rate
править: извините, изменитесь макс. на минуту