#sql
#sql
Вопрос:
У меня есть следующая упорядоченная таблица:
types count
soft 7
lite soft 5
middle soft 4
hard soft 3
other 2
Мне нужно выбрать верхние значения, сумма которых равна 15 (в моем случае 7 5 4 > 15) и объединить элементы, которые остались в других:
результат должен быть:
types count
soft 7
lite soft 5
middle soft 4
other 5
Комментарии:
1. Пометьте свой вопрос базой данных, которую вы используете.
Ответ №1:
Вы можете использовать подзапрос с накопительной суммой:
select (case when running_count - count <= 15 then types else 'other' end) as types,
sum(count)
from (select t.*, sum(count) over (order by count desc) as running_count
from t
) t
group by (case when running_count - count <= 15 then types else 'other' end)