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

Всем привет. Подскажите пожалуйста, как правильно написать запрос? Есть сущности: TradeLot {id} TradeLotStatus

{id, lot_id (FK TradeLot), status (character varying), created_at (timestamp with time zone)}

Нужно вывести список лотов, у которых последний статус == 'new'
последний статус это статус у которого created_at более актуальный

10 ответов

5 просмотров

Можно решить с помощью row_number() over (partition by id) или через distinct on (id) Я, конечно, могу написать запрос, но лучше бы вы сами научились. Направление поиска дал.

странно, что статус не FK или enum https://sqlize.online/sql/psql15/8a04d4c2a0a3118017b66e988c9b4cdf/

Nikita-Noskov Автор вопроса
Pavel Chernoskutov
странно, что статус не FK или enum https://sqlize....

Благодарю! статус как enum, но не нативный

Не проверял синтаксис но должно быть что-то типа SELECT * FROM (SELECT lot_id, first_value (status) OVER (PARTITION BY lot_id ORDER BY created_at DESC) AS last_status FROM TradeLotStatus) st WHERE last_status = 'new'

вот еще вариант https://sqlize.online/sql/psql15/ed219b7427a597378fc0f54421130ea0/

ЕАИСТ?

Nikita Noskov
Спасибо!

По-моему, результат неверный...

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

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

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
А дальше что?.. Записать в файл, потом в Код?.. И потом разбирать как-то?..
Хаскель Моисеевич Гопник
14
доброго времени. db, dw и прочие исполняются при трансляции или при выполнении программы?
lutayyy
10
Почему никто не подсказал, что можно объявить свои типы данных, в которых меньше полей, чем в отданном джейсоне, и добавлять их по необходимости?
Strange Rabbit
10
Хтось використовував Vapor на Windows?
Jaroshevskii
15
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Карта сайта