powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Нужен SQL запрос - найти значение, ближайшее к требуемому
3 сообщений из 3, страница 1 из 1
Нужен SQL запрос - найти значение, ближайшее к требуемому
    #39959844
Bolonat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Пожалуйста, помогите написать sql запрос. Есть две таблицы. В одной фиксируется время и значение некоего параметра: MeasuredTime, ParamValue. А в другой - время и глубина: MeasuredTime, Depth. Время в обеих таблицах может не совпадать. Необходимо найти соответствие - для ParamValue найти Depth, ближайшую по времени.
Я написала запрос, в котором время совпадает :

Код: plsql
1.
2.
3.
4.
5.
6.
SELECT  a."MeasuredTime", b."Depth", "ParamName", "ParamValue"
  FROM public."LwdData" a, public."DrillingMonitorData" b where 
  a."ParamName"='GRBM' 
  and a."MeasuredTime" BETWEEN '2019-09-05 23:00:00' AND '2019-09-05 23:36:25'
  and b."Depth" BETWEEN 2000 and 3000 
  and a."MeasuredTime"=b."MeasuredTime"



Но таким образом я получаю только часть данных. Понимаю, что надо брать минимальную разницу по модулю. Что-то вроде min(abs(a."MeasuredTime"=b."MeasuredTime")) Но как правильно написать составной запрос, да еще чтобы быстро работал - не знаю.
...
Рейтинг: 0 / 0
Нужен SQL запрос - найти значение, ближайшее к требуемому
    #39960001
Swa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bolonat,

Насколько большой может быть разница? Могут ли измерения перекрываться? Может подойдет такой вариант


Код: plsql
1.
2.
3.
4.
5.
6.
SELECT  a."MeasuredTime", b."Depth", "ParamName", "ParamValue"
  FROM public."LwdData" a, public."DrillingMonitorData" b where 
  a."ParamName"='GRBM' 
  and a."MeasuredTime" BETWEEN '2019-09-05 23:00:00' AND '2019-09-05 23:36:25'
  and b."Depth" BETWEEN 2000 and 3000 
  and b."MeasuredTime" between a."MeasuredTime" - interval '10' second and a."MeasuredTime" + interval '10' second



Но данный фокус пройдет только в случае если разница между таблицами не превышает 10 сек, и интервал между измерениями должен быть более 20 сек.
...
Рейтинг: 0 / 0
Нужен SQL запрос - найти значение, ближайшее к требуемому
    #39960563
Bolonat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос решен. Большое спасибо.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Нужен SQL запрос - найти значение, ближайшее к требуемому
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]