Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
20.08.2020, 20:46
|
|||
---|---|---|---|
Сгруппировать строки, так чтобы собрать все последние данные в одну строку |
|||
#18+
Есть таблица, куда последовательно приходят данные, но хитро, в полях проставляются только новые значения, остальные null Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Нужно сделать группировку так,чтобы в итоговую строку собрались все последние не null данные, а если в пачке строк для какого то поля не нашлось ни одной строки с данными, значит оставить null должно получиться Код: plsql 1.
есть лобовое решение, обновлять поля по одному, вылавливая последний по времени из тех что not null может есть получше вариант? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.08.2020, 21:36
|
|||
---|---|---|---|
Сгруппировать строки, так чтобы собрать все последние данные в одну строку |
|||
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.08.2020, 21:38
|
|||
---|---|---|---|
Сгруппировать строки, так чтобы собрать все последние данные в одну строку |
|||
#18+
Код: plsql 1.
Это копипастом прошло, выкинуть можно. Ну и строку dt к дате преобразовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.08.2020, 21:58
|
|||
---|---|---|---|
Сгруппировать строки, так чтобы собрать все последние данные в одну строку |
|||
#18+
Если играться с аналитикой, то вот решение с одним window sort Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.08.2020, 12:44
|
|||
---|---|---|---|
Сгруппировать строки, так чтобы собрать все последние данные в одну строку |
|||
#18+
AmKad, Код: plsql 1. 2. 3. 4. 5.
..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.08.2020, 13:08
|
|||
---|---|---|---|
Сгруппировать строки, так чтобы собрать все последние данные в одну строку |
|||
#18+
Stax AmKad, Код: plsql 1.
Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
23.08.2020, 15:23
|
|||
---|---|---|---|
|
|||
Сгруппировать строки, так чтобы собрать все последние данные в одну строку |
|||
#18+
Не из-под голденгейта ли в insertallrows та табличка? ...и если это репликация, то следует учесть: - отработку set F=NULL на источнике. - отработку обновлений, пришедших после зачистки Вашей хитрой таблички. Наиболее разумным решением подобной задачи в свое время стала pipelined-parallel-enabled функция. Но можно скрафтить и агрегатную. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.08.2020, 23:48
|
|||
---|---|---|---|
Сгруппировать строки, так чтобы собрать все последние данные в одну строку |
|||
#18+
AmKad Только если с Код: plsql 1.
эта приблуда же вроде в потгресе, если в over включен order by? собственно мне и надо в постгресе реализовать, но там тухловатый форум главное принцип, а для конкретной базы я допилю ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.08.2020, 23:53
|
|||
---|---|---|---|
Сгруппировать строки, так чтобы собрать все последние данные в одну строку |
|||
#18+
andrey_anonymous Не из-под голденгейта ли в insertallrows та табличка? ...и если это репликация, то следует учесть: - отработку set F=NULL на источнике. - отработку обновлений, пришедших после зачистки Вашей хитрой таблички. Наиболее разумным решением подобной задачи в свое время стала pipelined-parallel-enabled функция. Но можно скрафтить и агрегатную. нет не GG, просто данные приходят, поднимаются в стейджевые таблицы, там еще осложнение что в постгрес-образной базе нет MERGE, поэтому delete/insert решение last_value over() вполне рабочее и поддерживается базой ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.08.2020, 14:56
|
|||
---|---|---|---|
Сгруппировать строки, так чтобы собрать все последние данные в одну строку |
|||
#18+
Sintetik решение last_value over() вполне рабочее и поддерживается базой еще можно unpivot+номенерация+pivot для rn=1, наверняка дороже будет я б делал через keep .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=52&tablet=1&tid=1880936]: |
0ms |
get settings: |
13ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
19ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 321ms |
total: | 489ms |
0 / 0 |