172 похожих чатов

Привет, подскажите: есть запрос ниже, который для записи из items

возвращает
также из таблицы истории статусов максимальную дату по статусу. Статусов может несколько,
записей с одним статусом тоже. Теперь нужно добавить в результат еще одно поле(гуид),
не придумал ничего лучше, чем делать jsonb и уже в приложении при маппинге из мапы этой брать нужный результат.
Может есть решение более изящное?

SELECT pi.id as id, history.open_update AS f1
FROM ONLY items pi
INNER JOIN (SELECT
item_id AS item_id,
max(updated_at) FILTER (WHERE new_status = 'OPEN'::status) AS open_update,
FROM ONLY items_status_history
group by item_id
) history on history.item_id = pi.id
WHERE pi.id=1

SELECT pi.id as id, history.open_update AS f1
FROM ONLY items pi
INNER JOIN (SELECT
item_id AS item_id,
jsonb_object_agg(updated_at, updated_by) FILTER (WHERE new_status = 'OPEN'::status) AS open_update,
FROM ONLY items_status_history
group by item_id
) history on history.item_id = pi.id
WHERE pi.id=1

4 ответов

9 просмотров

Ничего непонятно. Но вообще: самое изящное решэние для доьавления поля — это добавить поле. (А, да, первый как минимум запрос синтаксически некорректен — на запятой после AS open_update, упадёт).

Konstantin 🇷🇺- Автор вопроса
Ilya Anfimov
Ничего непонятно. Но вообще: самое изящное решэни...

В плане запятых просто убрал лишнее, пропустил что-то. Я не могу же добавить еще одно в функцию max, а мне нужно вытащить теперь не только дату последней строки по условию , но и еще одно поле.

Konstantin 🇷🇺
В плане запятых просто убрал лишнее, пропустил что...

Кажэтся, чуть-чуть понял, вам тут полезно будет сменить это на LATERAL JOIN (и LIMIT 1).

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
7
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
7
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Карта сайта