|
Помогите записать условие запроса
|
|||
---|---|---|---|
#18+
Приветствую, На ровном месте возникла проблема с написанием запроса. Те варианты, что я придумал (под спойлером), работают настолько долго, что я ни разу не дождался завершения. С ними явно что-то не так. select e.created_utc, i.* from station_history_entry e join (select distinct station_id from station_history_item) s on 1=1 join station_history_item i on i.station_id = s.station_id and i.entry_id in (select max(entry_id) from station_history_item i2 where i2.station_id=i.station_id and i2.entry_id <= e.id) order by e.created_utc В общем, есть две таблицы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
В результате хочется получить вот такую выборку Код: plaintext 1. 2. 3. 4.
То есть если значения нет, должно браться значение за ближайшую предыдущую дату. Предполагаю, что задача достаточно часто встречающаяся. Явно я что-то очень простое упускаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 14:32 |
|
Помогите записать условие запроса
|
|||
---|---|---|---|
#18+
Роман ЯнковскийПредполагаю, что задача достаточно часто встречающаяся. Задача совсем не частая и решается а) Отдельными запросами; б) PSQL блоком; в) Аналитическими функциями. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 14:37 |
|
Помогите записать условие запроса
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Понятно... А можешь наводку на подходящие аналитические функции дать? Как раз недавно мигрировали на fb3.0, может там есть что-то нужное, о чем я не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 14:44 |
|
Помогите записать условие запроса
|
|||
---|---|---|---|
#18+
Роман Янковский, LEAD/LAG ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 14:47 |
|
Помогите записать условие запроса
|
|||
---|---|---|---|
#18+
Симонов ДенисLEAD/LAG Скорее FIRST_VALUE, но я не уверен. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 14:52 |
|
Помогите записать условие запроса
|
|||
---|---|---|---|
#18+
у мну такое впечатление ,что не хватает отдельной таблицы-справочника по правильным TIMESTAMP иначе "07.06.2016 10:10 <--- взято значение предыдущей записи" - а с какого это потолка мы взяли TIMESTAMP для НЕСУЩЕСТВУЮЩЕЙ записи ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 14:56 |
|
Помогите записать условие запроса
|
|||
---|---|---|---|
#18+
Ariochиначе "07.06.2016 10:10 <--- взято значение предыдущей записи" - а с какого это потолка мы взяли TIMESTAMP для НЕСУЩЕСТВУЮЩЕЙ записи ??? Из таблицы STATION_HISTORY_ENTRY ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 15:20 |
|
Помогите записать условие запроса
|
|||
---|---|---|---|
#18+
а что и в каком количестве там есть вообще ? а если туда добавить ещё третью строку "2 07.06.2016 10:35" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 15:49 |
|
Помогите записать условие запроса
|
|||
---|---|---|---|
#18+
т.е. на мой вкус логика отчёта примерно такая 1. мы получаем справочник (или последовательность созданную в SP ) канонических TimeStamp 2. для каждого TS пребираем все Station_ID 3. для каждого {TS;S_ID} вытягиваем First(1) .... where TS <= :TS and S_ID = :S_ID при этом ещё может быть ситуация когад дял какй=то станций записей нет ну вот вообще... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 15:52 |
|
Помогите записать условие запроса
|
|||
---|---|---|---|
#18+
Ariochа что и в каком количестве там есть вообще ? Порядка 100 тыс записей в _ENTRY и порядка 2 млн записей в _ITEM на текущий момент. Ariochа если туда добавить ещё третью строку "2 07.06.2016 10:35" ? Не понял :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 15:57 |
|
Помогите записать условие запроса
|
|||
---|---|---|---|
#18+
Ariochпри этом ещё может быть ситуация когад дял какй=то станций записей нет ну вот вообще... Можем игнорировать такие станции ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2016, 15:57 |
|
|
start [/forum/topic.php?fid=40&msg=39285388&tid=1562031]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 281ms |
total: | 416ms |
0 / 0 |