|
Как проверить условием рядомстоящие ячейки?
|
|||
---|---|---|---|
#18+
Приветствую всех.. Ломаю голову над одним запросом, есть некая таблица, где условно есть много других столбцов, но мне интересны столбцы ID(значения не уникальны могут повторяться в зависимости от количества статусов), DATA, STATUS(всего 3 наименования статусов, но они могут чередоваться хоть сколько раз). Нужно сделать выборку уникальных ID, где дата(max,самая свежая дата), а статус 1(это в принципе легко). Но вот второе условие, если при уникальном значении в свежей дате статус 2, то нужно выбрать втрое значение, если там статус 1, если же там статус 3, то такое значение вообще не нужно выводить, не могу придумать, как сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2021, 08:21 |
|
Как проверить условием рядомстоящие ячейки?
|
|||
---|---|---|---|
#18+
Nikanette Приветствую всех.. Ломаю голову над одним запросом, есть некая таблица, где условно есть много других столбцов, но мне интересны столбцы ID(значения не уникальны могут повторяться в зависимости от количества статусов), DATA, STATUS(всего 3 наименования статусов, но они могут чередоваться хоть сколько раз). Нужно сделать выборку уникальных ID, где дата(max,самая свежая дата), а статус 1(это в принципе легко). Но вот второе условие, если при уникальном значении в свежей дате статус 2, то нужно выбрать втрое значение, если там статус 1, если же там статус 3, то такое значение вообще не нужно выводить, не могу придумать, как сделать. второе значение в каком порядке сортировки? приведите пример данных и какой вывод вы ожидаете... для случаев что вы описали. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2021, 14:53 |
|
Как проверить условием рядомстоящие ячейки?
|
|||
---|---|---|---|
#18+
Maxim Boguk, ID ::::::::::::::::: DATA :::::::::::::STATUS UYHF ::::::::: 11.03.20 :::::::::::::::: 1 UYHF ::::::::: 10.03.20 :::::::::::::::: 3 NKLA ::::::::: 05.02.20 :::::::::::::::: 2 NKLA ::::::::: 04.02.20 :::::::::::::::: 3 NKLA :::::::::: 02.02.20 ::::::::::::::: 1 POMB ::::::::: 01.02.20 ::::::::::::::: 2 POMB ::::::::: 30.01.20 ::::::::::::::: 1 POMB ::::::::: 29.01.20 ::::::::::::::: 3 LJOP ::::::::::: 22.01.20 ::::::::::::::: 1 LJOP ::::::::::: 20.01.20 ::::::::::::::: 3 KOPL ::::::::::: 18.01.20 ::::::::::::::: 3 KOPL ::::::::::: 17.01.20 ::::::::::::::: 1 Подходящие для вывода данные: ID :::::::::::::::::::: DATA :::::::::::: STATUS UYHF ::::::::::: 11.03.20 :::::::::::::::: 1 POMB :::::::::: 30.01.20 :::::::::::::::: 1 LJOP :::::::::::: 22.01.20 :::::::::::::::: 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2021, 05:40 |
|
Как проверить условием рядомстоящие ячейки?
|
|||
---|---|---|---|
#18+
Nikanette, Если я нигде не напутал то через window функции легко склеивается (но если таблица очень большая то будет конечно неторопливо): Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
с точностью до опечаток. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2021, 10:08 |
|
Как проверить условием рядомстоящие ячейки?
|
|||
---|---|---|---|
#18+
Maxim Boguk, Благодарю, обязательно попробую, подскажи пожалуйста ещё, в самом верхнем SELECT, зачем (res) указывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2021, 12:01 |
|
Как проверить условием рядомстоящие ячейки?
|
|||
---|---|---|---|
#18+
Nikanette Maxim Boguk, Благодарю, обязательно попробую, подскажи пожалуйста ещё, в самом верхнем SELECT, зачем (res) указывать? потому что такой синтаксис распаковки ROW типов. см https://www.postgresql.org/docs/13/rowtypes.html#ROWTYPES-ACCESSING -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2021, 12:32 |
|
|
start [/forum/topic.php?fid=53&fpage=7&tid=1993849]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 255ms |
total: | 378ms |
0 / 0 |