Предположим, у меня есть следующие строки в таблице
| id | user_id | amount | date |
------------------------------------------------
| 1 | 1 | 100 | 2019-09-30 |
------------------------------------------------
| 2 | 2 | 100 | 2019-09-30 |
------------------------------------------------
| 3 | 1 | 100 | 2019-09-30 |
------------------------------------------------
| 4 | 3 | 100 | 2019-10-01 |
------------------------------------------------
| 5 | 1 | 75 | 2019-10-01 |
------------------------------------------------
| 6 | 3 | 100 | 2019-10-01 |
------------------------------------------------
| 7 | 1 | 35 | 2019-10-01 |
------------------------------------------------
Я пытаюсь найти способ получить все строки с user_id = 1
, где sum(amount) < 300
и date <= '2019-10-01'
.
Я пытаюсь обрабатывать только те записи, которые соответствуют определенной пороговой сумме. Я не совсем уверен, с чего начать.
Ожидаемый результат
| id | user_id | amount | date |
------------------------------------------------
| 1 | 1 | 100 | 2019-09-30 |
------------------------------------------------
| 3 | 1 | 100 | 2019-09-30 |
------------------------------------------------
| 5 | 1 | 75 | 2019-10-01 |
------------------------------------------------
Вот что я пробовал до сих пор
SELECT id, SUM(amount) as total_sum
FROM table
WHERE date <= '2019-10-01' AND user_id = 1
ORDER BY date ASC
HAVING total_sum <= 300
Iне получить желаемый результат на основе вышеуказанного запроса.
Версия MySQL, в настоящее время использующая: 5.7.25
Я посмотрел на этот вопрос MySQL выбирает записи с суммой, превышающей порог , предполагая, что они пытаются сделать то же самое,но это не то, на что я смотрю