Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Нужен SQL запрос - найти значение, ближайшее к требуемому / 3 сообщений из 3, страница 1 из 1
20.05.2020, 13:41
    #39959844
Bolonat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен SQL запрос - найти значение, ближайшее к требуемому
Здравствуйте! Пожалуйста, помогите написать 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
20.05.2020, 18:11
    #39960001
Swa111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен SQL запрос - найти значение, ближайшее к требуемому
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
22.05.2020, 09:17
    #39960563
Bolonat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужен SQL запрос - найти значение, ближайшее к требуемому
Вопрос решен. Большое спасибо.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Нужен SQL запрос - найти значение, ближайшее к требуемому / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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