如何将总计添加到此查询?

时间:2018-11-15 11:32:31

标签: sql postgresql

使用此查询:

With EX1 AS
(
SELECT
idcompany,
idemploy,
import
FROM data
WHERE
idcompany in ('000405', '000102')
)
SELECT * 
FROM EX1
UNION ALL
SELECT idcompany, 'Total', sum(import) from EX1
GROUP BY idcompany
ORDER BY
idcompany,
idemploy

我得到:

idcompany idemploy import
000102    0000001     100
000102    0000002     200
000102     Total      300
000405    0000001      50
000405    0000002      70
000405     Total      120

我想得到:

idcompany idemploy import
000102    0000001     100
000102    0000002     200
000102     Total      300
000405    0000001      50
000405    0000002      70
000405     Total      120
Grand      Total      420 

我必须在查询中添加什么代码,并且应该在哪里添加它?谢谢。

2 个答案:

答案 0 :(得分:2)

您可以附加一个

UNION ALL
SELECT 'Grand', 'Total', sum(import) from EX1

查询。

答案 1 :(得分:0)

您可以使用ROLLUP子句(Postgres 9.5+)的GROUP BY子句以及Grouping函数,该函数非常适合此类操作,并且比那些{ {1}} s

Docs

UNION ALL

Demo