Вы должны быть в состоянии сделать это, используя 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)
Это хороший способ сделать это с одним запросом, ноэто сложный запрос, и вы должны быть осторожны, если используете его для очень больших таблиц.