Я тестирую сложное правило базы данных, и мне нужна помощь в формулировании логики для тестирования ниже сценария.сбор записей из результата SQL-запроса на основе ранга
У меня есть выход, как показано ниже, скажем, имя таблицы температуры
BUSINESS_KEY STATUS_KEY CREATE_TIMESTAMP
123 a1 1 P.M.
123 a1 1:30 P.M.
123 b1 2:00 P.M.
123 a1 2:30 P.M.
Я должен забрать ниже записей из выше
BUSINESS_KEY STATUS_KEY CREATE_TIMESTAMP
123 a1 1 P.M.
123 b1 2:00 P.M.
123 a1 2:30 P.M.
я должен отбросить вторую запись, правило если тот же status_key приходит на выходе для последовательных временных меток, как это было в примере выше 1:00 PM и 1:30 P.M., только самая ранняя запись метки времени подобрана. Мне разрешено выбрать четвертую запись, поскольку она не соответствует первой.
Я пробовал все ряды(), row_number, сочетания self join, но не работал. Кто-нибудь может помочь?
Я просто отвечал на подобный вопрос [здесь] (http://stackoverflow.com/questions/42142981/how-to-group -this-data-so-i-can-pull-out-specific-rows-from-each-group/42145336 # 42145336) с использованием 'LAG' и' ROW_NUMBER() '. Я бы предложил сохранить этот TIMESTAMP как 'DATETIME', хотя ... потому что упорядочение ваших данных через несколько дней вызовет у вас некоторые головные боли. Что, если время было 11:50, а затем 00:01? – scsimon