我想创建一个视图,我可以在其中加入两个最新状态及其时间戳和对视图的评论。我知道我可以使用 min 和 max 作为时间戳,但我怎样才能正确设置他们的评论(见代码中的评论)?最有效的方法是什么?(除了评论,我还有大约 10 列需要加入以了解当前和以前的状态)。
我正在使用 postgres v10
SELECT
w.workplace_id,
max(current_and_previous_statuses.timestamp) AS current_status_timestamp,
min(current_and_previous_statuses.timestamp) AS previous_status_timestamp
-- current_status.comment
-- previous_status.comment
FROM workplace w
LEFT JOIN (
SELECT
ws.workplace_status_id,
ws.timestamp,
ws.fk_workplace_id,
ws.comment
FROM workplace_status ws
ORDER BY ws.timestamp DESC
LIMIT 2
) current_and_previous_statuses ON current_and_previous_statuses.fk_workplace_id = w.workplace_id
GROUP BY w.workplace_id