nor1m
@nor1m
web-developer

Как вывести строки, определенные поля у которых дают в сумме 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
Следовательно вывести:

id amount
1 10
2 15
3 45
4 50
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Запрашиваете все строки. Выбираете их по одной, накапливая сумму. Как только сумма стала больше 100 - прекращаете выборку.
Ответ написан
LaRN
@LaRN
Senior Developer
Можно вот так попробовать:
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`
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы