|
Как заполнить значение ячейки значением из предыдущей строки?
|
|||
---|---|---|---|
#18+
Привет! Имеется таблица, кусок: id_order | id_user | price | o_date 4914557 | 4010777 | 2670 | 16.06.2017 4914559 | 3764611 | 0 | (null) Надо там, где o_date isnull, проставить значение из предыдущей строки (к примеру, в приведенном чтобы было 16.06.2017). Таблица больше 4 млн строк, o_date isnull много в разных местах. Как это сделать массово по всей таблице? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2021, 12:26 |
|
Как заполнить значение ячейки значением из предыдущей строки?
|
|||
---|---|---|---|
#18+
Если просто в запросе, то coalesce(lag(...)). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2021, 14:23 |
|
Как заполнить значение ячейки значением из предыдущей строки?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Отлаживаю, пишу: SELECT *, lag(o_date) OVER (PARTITION BY id_order ORDER BY id_order) AS previous_date FROM orders_all WHERE id_order = 221; Возвращает: previous_date (null) Что не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2021, 16:50 |
|
Как заполнить значение ячейки значением из предыдущей строки?
|
|||
---|---|---|---|
#18+
n_script, уберите PARTITION BY id_order вы же сами сказали в пределах id_order искать конкретного предыдущую запись. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2021, 22:34 |
|
Как заполнить значение ячейки значением из предыдущей строки?
|
|||
---|---|---|---|
#18+
Maxim Boguk, Убрала, все равно в столбце previous_date значение (null) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.08.2021, 22:39 |
|
Как заполнить значение ячейки значением из предыдущей строки?
|
|||
---|---|---|---|
#18+
n_script Maxim Boguk, Убрала, все равно в столбце previous_date значение (null) что тоже вполне очевидно например потому что WHERE id_order = 221 стоит а он применяется до того как lag/window применять. Код: sql 1. 2. 3.
например. Но если вам надо для конкретного id_order а не по всей таблице считать то конечно будет эффективнее другой запрос: Код: sql 1. 2. 3.
предполагая конечно наличие индекса по id_order (хотя и без него наверное будет быстрее). -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2021, 00:19 |
|
|
start [/forum/topic.php?fid=53&msg=40087698&tid=1993917]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 139ms |
0 / 0 |