Что можно дописать в запрос что бы получить результат?

собствено вот запрос

SELECT bonus, nlevel(tree) - nlevel('2.383') AS level
FROM "user" 
INNER JOIN "bonus_item" 
ON user_from = "user".id 
AND user_to = 383
WHERE (tree ~ '2.383.*{0,5}') 
AND ("mounth" = '9:2017')
order by nl;

получаю результат
bonus   | level 
--------+----
 331.00 |  0
  10.40 |  1
  10.20 |  1
   3.20 |  1
  10.40 |  1
   6.20 |  2
   2.60 |  3
  14.76 |  4
   2.82 |  4
   3.16 |  5


хотелось бы? что бы суммировалось по то есть чтобы получилось вот так
bonus   | level 
--------+----
 331.00 |  0
  34.20 |  1
   6.20 |  2
   2.60 |  3
  17.58 |  4
   3.16 |  5
  • Вопрос задан
  • 158 просмотров
Решения вопроса 2
Assargin
@Assargin
Перед ответом смотрю наличие ✔ в ваших вопросах
Обычно в таких случаях в запрос добавляют группировку и используют агрегатные функции. Попробуйте вот так:
SELECT SUM(bonus), nlevel(tree) - nlevel('2.383') AS level
FROM "user" 
INNER JOIN "bonus_item" 
ON user_from = "user".id 
AND user_to = 383
WHERE (tree ~ '2.383.*{0,5}') 
AND ("mounth" = '9:2017')
GROUP BY (nlevel(tree) - nlevel('2.383'))
order by nl;
Ответ написан
denman1985
@denman1985
SQL, Oracle Forms/Reports dbd
SELECT SUM(bonus), nlevel(tree) - nlevel('2.383') AS level
FROM "user" 
INNER JOIN "bonus_item" 
ON user_from = "user".id 
AND user_to = 383
WHERE (tree ~ '2.383.*{0,5}') 
AND ("mounth" = '9:2017')
GROUP BY nlevel(tree) - nlevel('2.383')
order by nl;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы