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