Вот моя структура таблицы:
// refund_requests
+----+---------+------+------------+
| id | user_id | paid | date_time |
+----+---------+------+------------+
| 1 | 123 | 1 | 1498830938 |
| 2 | 456 | 0 | 1498830939 |
| 3 | 123 | 0 | 1498830940 |
+----+---------+------+------------+
Мне нужно получить две цифры:
- Количество зарегистрированных запросов на возврат средств за последний день для конкретного пользователя.
- Значение
paid
последнего зарегистрированного запроса на возврат для определенного пользователя.
Таким образом, ожидаемый результат : (для пользователя user_id = 123
)
+---------------------------------+--------------------------------+
| refund_requests_num_in_last_day | paid_value_of_the_last_request |
+---------------------------------+--------------------------------+
| 2 | 0 |
+---------------------------------+--------------------------------+
Есть идеи, как я могу получить это в MySQL?
Вот мой текущий запрос:
SELECT COALESCE(sum(date_time > unix_timestamp(DATE_SUB(now(), INTERVAL 1 DAY))),0) AS refund_requests_num_in_last_day,
paid AS paid_value_of_the_last_request
FROM refund_requests
WHERE user_id = 123
Мой запрос не гарантирует значениеpaid
принадлежит последней строке (той, у которой самый большой идентификатор)