SQL: Как сгруппировать строки с условием, что сумма полей ограничена определенным значением? - PullRequest
0 голосов
/ 30 сентября 2018

Это моя таблица:

id  user_id  date          balance
1   1        2016-05-10    10
2   1        2016-05-10    30
3   2        2017-04-24    5
4   2        2017-04-27    10
5   3        2017-11-10    40

Я хочу сгруппировать строки по user_id и суммировать остаток , но так, чтобы сумма была равна илименее 30. Более того, мне нужно отобразить минимальную дату в группе.Это должно выглядеть так:

id      balance date_start
1-1      10     2016-05-10
1-2      30     2016-05-10
2-1      15     2017-04-24

Извините за мой язык.Спасибо.

1 Ответ

0 голосов
/ 30 сентября 2018

Вы должны быть в состоянии сделать это, используя group by & имея, вот пример того, что может решить ваш случай:

SELECT id, user_id, SUM(balance) as balance, data_start
FROM your_table
GROUP BY user_id
HAVING SUM(balance) >= 30
AND MIN(date_start)

Это хороший способ сделать это с одним запросом, ноэто сложный запрос, и вы должны быть осторожны, если используете его для очень больших таблиц.

...