У меня есть таблица, которая хранит сообщения, отправленные пользователями, раскладка выглядит следующим образомВыбрать первые N сообщений каждый пользователь получает
id (auto-incrementing) | message_id | user_id | datetime_sent
Я пытаюсь найти первые N MESSAGE_ID о том, что каждый пользователь получил, но я полностью застрял. Я могу сделать это легко для каждого пользователя (при определении идентификатора пользователя в запросе), но не для всех пользователей.
Things отметить:
- Многие пользователи могут получить тот же MESSAGE_ID
- сообщений идентификаторы не передаются последовательно (т.е. мы можем послать сообщение 400 перед тем сообщением 200)
- Это только для чтения базы данных MYSQL
EDIT: на второй мысли я удалил этот бит, но добавили его обратно, так как кто-то был достаточно любезен, чтобы работать на нем
Конечная цель - посмотреть, сколько% пользователей открыли одно из первых N сообщений, которые они получили.
Эта таблица открывается, выглядит так:
user_id | message_id | datetime_opened
Почему бы не создать столбец datetime с датой сообщения, вставленной в db? – Santiago
@ Santiago столбец для time_sent на самом деле является датой, а не только временем. Отредактированное сообщение для уточнения. Кроме того, как упоминалось в примечаниях, это только чтение. – Brandon
Вы просите процент всех * всех * пользователей или только тех, кто получил хотя бы одно сообщение? – trincot