Проблема, с которой я сталкиваюсь, связана с базой данных бурения. Таблица имеет два столбца: первый с глубиной, записанной датчиком, а второй с отметкой времени. Во время бурения оборудование может быть возвращено обратно для замены его долота.
Я пытаюсь сделать запрос, который описал бы, например, сколько времени занимает сверление каждого метра (0-1; 1-2; 2-3), например :
Проблема, с которой я сталкиваюсь, заключается в том, что при выполнении этого сравнения между строками на SQL Сервере, если я пытаюсь сравнить max(Timestamp)
после группировки, я в конечном итоге включаю данные, когда биты возвращаются, что я не хочу делать.
Select
Case when a.depth > 0 and a.depth <= 1 then '0-1'
when depth > 1 and depth <= 2 then '1-2' -- and so on until 10m where it ends…
end as 'Class',
(max(Timestamp) - min(Timestamp)) as 'Duration'
from Table
group by Class
order by Class
Кто-нибудь знает, как сделать это сравнение между строками одного столбца? По сути, он должен игнорировать любые значения, которые ниже, чем его последний максимум.