我很难将视图从 T-SQL 转换为 Postgresql,因为它与聚合函数有关。
这是我原来的 SQL 查询:
SELECT TOP (100) PERCENT
thread_id,
MIN(message_id) AS message_id,
MIN(parent_message_id) AS parent_message_id,
MIN(created_at) AS initialResponse
FROM
dbo.bi_linear_thread
WHERE
LEFT([subject], 5) LIKE '%RE:%' AND parent_message_id IS NOT NULL
GROUP BY
thread_id
ORDER BY
thread_id
我试图利用以下窗口功能:
first_value(message_id) OVER (Partition BY message_id ORDER BY messageid)
但继续得到不正确的回报。
想法?
编辑以获取更多上下文
- 在提供答案之后。希望这对其他人有帮助。
需要读取组中的第一行,该组中排除了线程层次顺序中的第一条记录以进行回复。
thread_id
代表线程。
message_id
表示任何消息类型,无论是回复/原始消息。parent_message_id
表示线程中的原始消息。
“RE:”是指定的回复格式,无论是否嵌套在主题字段中。