mysql - 将为我提供每个 senderId 的最新 messageContent 帖子的 SQL 查询是什么?
问题描述
我有下面称为消息的mysql表。我想要一个 SQL 查询,它会给我messageContent
每个最新的帖子senderId
?
消息ID | 发件人ID | 接收者 ID | 上市 | 消息时间 | 消息内容 |
---|---|---|---|---|---|
14 | 敬畏123 | 敬畏123 | 是 | 2020-12-14 20:40:06 | 震惊和敬畏,宝贝! |
15 | ewm20 | ewm20 | 是 | 2020-12-15 16:29:29 | 祝大家圣诞快乐,晚安。 |
16 | ewm20 | ewm20 | 是 | 2020-12-16 21:27:09 | 摇滚吧,兄弟! |
17 | ewm20 | ewm20 | 是 | 2020-12-16 23:27:19 | 钢人队将卷土重来! |
18 | 猎鹰9 | 猎鹰9 | 是 | 2020-12-17 02:06:50 | 什么!星舰炸了???什么时候! |
19 | ewm20 | ewm20 | 是 | 2020-12-17 02:22:35 | 星舰于 12 月 9 日在着陆时爆炸。 |
20 | ewm20 | ewm20 | 是 | 2020-12-17 02:23:05 | 它的速度太高了。 |
21 | ewm20 | ewm20 | 是 | 2020-12-17 03:41:25 | 然而,马斯克仍然对到达火星持乐观态度。 |
结果将是这样的:
发件人ID | 消息时间 | 消息内容 |
---|---|---|
敬畏123 | 2020-12-14 20:40 | 震惊和敬畏,宝贝! |
ewm20 | 2020-12-17 03:41 | 然而,马斯克仍然对到达火星持乐观态度。 |
猎鹰9 | 2020-12-17 02:06 | 什么!星舰 |
解决方案
row_number
您可以按如下方式使用 windows 功能:
select * from
(select t.*,
row_number() over (partition by senderId order by messageTime desc) as rn
from your_table t) t
where rn = 1
推荐阅读
- html - 无法在Angular的innerHTML中呈现routerLink
- python - 许多 pip 文件,这是对的吗?
- postgresql - 是否有任何安装程序可用于安装 Open-SUSE/SLES 的 Time Scale DB?
- php - 将图像文件上传到服务器不起作用
- python - 从 csv 文件中读取长数字
- django - Django 表 - 填充数据的列关系
- java - 使用 Mockito 存根时出现 NullPointerException
- ssl - 无法摆脱 Gitlab 本地服务器中的 Let'sEncrypt - SSL 配置
- node.js - AWS SAM 本地和环境参数
- r - 如何控制添加到 R 中 x、y 空间点的噪声量?