【发布时间】:2016-07-14 20:14:56
【问题描述】:
我有一个表存储发送给用户的消息,布局如下
id (auto-incrementing) | message_id | user_id | datetime_sent
我正在尝试查找每个用户收到的前 N 个 message_id,但完全卡住了。我可以在每个用户的基础上轻松完成(在查询中定义用户 ID 时),但不适用于 所有 用户。
注意事项:
- 许多用户可以获得相同的 message_id
- 消息 ID 不是按顺序发送的(即我们可以在消息 200 之前发送消息 400)
- 这是一个只读的 mySQL 数据库
编辑:再三考虑我删除了这个位,但由于有人好心处理它,所以又重新添加了它
最终目标是查看有多少百分比的用户打开了他们收到的前 N 条消息中的一条。
打开表如下所示:
user_id | message_id | datetime_opened
【问题讨论】:
-
为什么不在数据库中插入消息日期的日期时间列?
-
@Santiago time_sent 的列实际上是一个日期时间,而不仅仅是时间。编辑帖子以澄清。此外,如注释中所述,它是一个只读数据库。
-
您是询问所有用户的百分比,还是只询问至少收到一条消息的用户?
-
@trincot 仅收到至少一条消息的人
-
为什么要从问题中删除第二个表?我一直在处理这个问题,但现在你的问题似乎改变了!?不再要求消息必须在前 5 次阅读中,等等?哇,我只是在这上面浪费了我的时间:-(
标签: mysql