Как вывести строки, определенные поля у которых дают в сумме 100?
Как вывести строки, определенные поля у которых дают в сумме 100 или больше ?
Есть такой запрос: SELECT amount FROM `table` ORDER BY `referral_id`
Нужно вывести те строки, поля у которых в сумме дадут 100.
Например
id amount
1 10
2 15
3 45
4 50
5 60
Он должен сложить поочередно ( в этом случае 1, 2, 3 и 4 ), пока не получит результат, в итоге получит >= 100
Следовательно вывести:
Возможно, стоит пересмотреть формат хранения данных, или пойти на сознательную денормализацию добавив вычисляемое значение. Хотя, если подходит вариант со 100 строками, то это излишне.
WITH ref AS
(SELECT `referral_id`
FROM `table`
GROUP BY `referral_id`
HAVING sum(`amount`) >= 100)
SELECT t1.`referral_id`, t1.`id`, t1.`amount`
FROM ref as t
INNER JOIN `table` t1
ON t1.`referral_id` = t.`referral_id`
ORDER BY t1.`referral_id`, t1.`id`