Сумма строк как последняя запись из результата запроса Postgresql - PullRequest
0 голосов
/ 06 сентября 2018

Столбец Моя таблица выглядит следующим образом, я хочу, чтобы сумма всех записей в последней строке без использования UNION

no_of_books
1
3
3
3
5

Ожидаемый результат будет

no_of_books
    1
    3
    3
    3
    5
   15

Я пытался так, но искал лучшие функции в PostgreSQL, как Oracle

select aa.no_of_books sum_prod  from (SELECT prodcount
FROM "table1") aa
union all
select sum(bb.sum_prod) from (
select aa.no_of_books sum_prod  from (SELECT prodcount
FROM "table1") aa ) bb

ИЛИ

select no_of_books
from table t 
union all
select sum(no_of_books)
from table t ;

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Использование rollup:

select sum(no_of_books)
  from books t
 group by rollup(no_of_books)

или cube

select sum(no_of_books)
  from books t
 group by cube(no_of_books);

(SQL Fiddle Demo)

0 голосов
/ 06 сентября 2018

Вы можете использовать rollup с подзапросом:

select coalesce(no_of_books, (select sum(no_of_books) from table t))
from table t
group by rollup(no_of_books);

Однако, это будет сделано с sum() напрямую:

select sum(no_of_books)
from table t
group by rollup(no_of_books);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...