表messages
:
conv_id | 用户身份 | 内容 | 发送时间 |
---|---|---|---|
1 | 001 | 1st_msg | 01-01-1990 00:00:00 |
2 | 002 | 2nd_msg | 02-01-1990 00:00:00 |
我们如何选择conv_id
每天在对话中发送的第一条消息和第一个回复( )?
笔记:
- 可以有很多用户。
- 一个用户可以发送多条消息。
- 这是一个人的数据集,只有两个人在聊天。
- 一整天,多条消息被交换。
- 第一条消息可以定义为第一个用户在第 1 天内的最短发送时间。
- 第一次回复可以定义为第二个用户在第一天的最短发送时间。
有一个真正简单的解决方案
DISTINCT ON
:db<>在这里摆弄
看:
模拟的索引跳过可能会更快。看:
在 的情况下
timestamptz
,除非明确定义,否则“天”由当前会话的时区设置定义。看: