powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Получение одной записи до и одной записи после
28 сообщений из 28, показаны все 2 страниц
Получение одной записи до и одной записи после
    #39447781
do.Donitoza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, подскажите пожалуйста, есть ли корректный способ построить запрос, который получит одну запись до и одну запись после заданного времени (timestamp), для всех объектов заданных второй таблицей.

Проще пояснить на примере:

Таблица из которой необходимо выбрать записи:
mylog
log_id object_id time_log

Таблица задающая критерии поиска:
events
object_id time_event

Необходимо, для каждой записи таблицы events, из таблицы mylog, выбрать одну (первую) запись до и одну после времени events.time_event

К сожалению, моих знаний хватает только на встроенную процедуру.
Возможно, кто-то подскажет как правильно решить данную задачу запросом.
Заранее спасибо.
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39447789
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Do Donitoza!
You wrote on 3 мая 2017 г. 12:31:18:

Do Donitoza> есть ли корректный способ построить запросда есть.
нужно взять и написать его.
проще всего соединить два запроса в один при помощи UNION ALL.
один будет тащить запись, которая "меньше", а другой - "больше".
для отбора одной единственной записи используй FIRST 1, в сочетании с ORDER BY.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39447848
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
do.Donitoza,

что-то типа того:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select a.*,
         ( select first 1 b.time_log
           from mylog b
           where b.object_id=a.object_id and b.time_log<a.time_event
           order by b.time_log desc
        ),  
         ( select first 1 b.time_log
           from mylog b
           where b.object_id=a.object_id and b.time_log>a.time_event
           order by b.time_log asc
        )  
from events a


Только помни, что для быстроты запросы нужно, по крайней мере, два индекса по таблице mylog в разрезе object и time_log.
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39447852
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
do.Donitoza,

а версия FB какая? А то в 3.0 можно и попроще оконными функциями LEAD/LAG
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39447870
do.Donitoza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

FB 3
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39447887
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, кто первый таки завяжет мальчику шнурочки?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39447908
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийну, кто первый таки завяжет мальчику шнурочки?
лет 10-12 назад ты был добрее и сам охотно писал подсказки
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39447910
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Док!
You wrote on 3 мая 2017 г. 15:03:25:

Док> лет 10-12 назад ты был добрее и сам охотно писал подсказкиподсказку я написал в первом же ответе.
но ТС видимо ждёт "доброго дядю".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39447911
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДокМимопроходящийну, кто первый таки завяжет мальчику шнурочки?
лет 10-12 назад ты был добрее и сам охотно писал подсказки
10-12 лет взад без сдачи экзамена на усвоения бумашек с ibase - сразу пристреливали...
Ну или хотя бы чтения книшки "Мир Интербейз"...
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39447929
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne,

Тогда Дейтом метали друг в дружку, пока канделябром не получали...

P.S. Может флейм про NULL начать? Поностальгировать
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39447931
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Darkmaster!
You wrote on 3 мая 2017 г. 15:18:52:

Darkmaster> Может флейм про NULL начать? Поностальгироватьне взлетит.
у СержаДикого чОрный депресняк - все должны страдать.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39447936
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийну, кто первый таки завяжет мальчику шнурочки?

я уже завязал. А через LAG/LEAD пусть сам (типа домашнее задание) раз продвинулся до FB3.
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39447937
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39447941
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kreatorxxi!
You wrote on 3 мая 2017 г. 15:27:00:

Kreatorxxi> я уже завязалему надо 2 записи
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39447955
do.Donitoza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо.

Использовал подсказку KreatorXXI, учитывая, что мне необходима информация из всех полей таблицы mylog, получилось, приблизительно следующее:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with e as(
select a.*,
         ( select first 1 b.log_id as log_id_before
           from mylog b
           where b.object_id=a.object_id and b.time_log<a.time_event
           order by b.time_log desc
        ),  
         ( select first 1 b.log_id as log_id_after
           from mylog b
           where b.object_id=a.object_id and b.time_log>a.time_event
           order by b.time_log asc
        )  
from events a
)
select * 
from e
join mylog m1 on m1.log_id = e.log_id_before
left join mylog m2 on m2.log_id = e.log_id_after
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39447957
do.Donitoza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KreatorXXI,

авторя уже завязал. А через LAG/LEAD пусть сам (типа домашнее задание) раз продвинулся до FB3.

еще раз спасибо!

Постараюсь разобраться с LAG/LEAD
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39448537
do.Donitoza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KreatorXXI,

Просмотрел возможности LAG/LEAD, не вижу, как эти функции могут помочь в более эффективном решении задачи.
В моём случае таблица mylog имеет более 5млн. записей, а events - 100 000, которые пересекаются по объекту (object_id) М:М.
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39448544
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

Денис, ты почту иногда смотришь? :)
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39448548
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
do.Donitoza,

думаю что в данном случае никак. Вопрос не внимательно прочитал. Если бы не было условия "до и после времени events.time_event", то тогда было бы проще
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39448565
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar, у нас одмины по требованию СБ опять https почти везде закрыли, за редким исключением. Гмыло могу теперь только дома смотреть.
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39448843
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devодмины по требованию СБ опять https почти везде закрыли
не в тренде они. Гугл уже пару лет как рекомендует сайты переводить на https, для надежности, безопасности и все такое. Я понимаю, что ваша контора не хочет, чтобы с браузеров что-то секретно передавалось, но ...
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39448849
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv, это СБ не в тренде. :)
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39448853
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
резать https - верх параноидального идиотизма "держимордов".
так же как и робкие попытки "мордора" запретить любые-всякие vpn.
ну а чо, прогнули ж они skype, на предмет контроля траффика...
понравилось, мля.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39449077
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev Гмыло могу теперь только дома смотреть.
А дома тоже СБ мешает ответить? :)
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39449108
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar, сори! Припёрся домой поел и уснул. Даже не вспомнил... На выходных обязательно гляну.
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39449110
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий, я тут заметил, что мой провайдер на некоторые сайты пытается подменить сертификат. Это уже край, перебор - дальше некуда. Всё понимаю - борьба с терроризмом, либералами, шпионами, детской порнографией... Но рамсы реально попутаны.
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39449274
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Rdb Dev!
You wrote on 5 мая 2017 г. 11:52:14:

Rdb Dev> я тут заметил, что мой провайдер на некоторые сайты пытается подменить сертификат.
> Это уже край, перебор - дальше некуда. Всё понимаю - борьба с терроризмом, либералами, шпионами,
> детской порнографией... Но рамсы реально попутаны.питарасы, сэр! (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Получение одной записи до и одной записи после
    #39449301
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий, уже подумываю арендовать за бугром облачные мощности и поднять свою собственную проксю по SSL на плавающем IP, чтобы цепляться к ней только по FQDN.
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Получение одной записи до и одной записи после
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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