Как рассчитать общую сумму в Oracle - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть проблема для расчета общей суммы. Например

id  name  date  amount
1    A    2017   100
1    A    2018   200
2    B    2017   50
2    B    2016   100
A's total        300
B's total        150
Total            450

Выберите идентификатор, имя, дату и сумму. Таблица1, где дата> 2015, заказ по идентификатору, сумма;

Я хочу рассчитать общую сумму для A, B и AB. Также добавьте новые имена столбцов. Какую функцию я должен использовать? Спасибо

Ответы [ 2 ]

1 голос
/ 09 апреля 2019
 SELECT id , SUM(amount)
FROM yourTable
GROUP BY id;
1 голос
/ 09 апреля 2019

Один метод использует grouping sets:

select id, name, date, sum(amount) as amount
from table1
where date > 2015
group by grouping sets ( (id, name, date), (name), () );

Я не уверен, какие новые имена столбцов вы хотите добавить.

EDIT:

Предполагая, что три ключевых столбца никогда не равны NULL, вы можете назначить имена как:

select id,
       (case when name is null then 'Total'
             when id is null then 'name' || '''s Total'
             else name
        end) as name
       date, sum(amount) as amount
from table1
where date > 2015
group by grouping sets ( (id, name, date), (name), () );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...