我正在尝试将SQL查询转换为Postgres,我正在努力做到以下,
示例:
首次查询我的下一个查询结果:select sourcename, type, count(type), sum(size) from table;
sourcename | Type | count | sum
------------+-----------------------------------------------------+-------+----------
A | TYPE1 | 21 | 10485378
B | TYPE1 | 12 | 5241177
C | TYPE1 | 12 | 5242254
D | TYPE1 | 12 | 5570560
A | TYPE2 | 11 | 5239645
B | TYPE2 | 12 | 5570560
C | TYPE2 | 12 | 5241862
D | TYPE2 | 11 | 5570560
输出我需要:
sourcename | Type | count | sum
------------+-----------------------------------------------------+-------+----------
A | TYPE1 | 21 | 10485378
| TYPE2 | 12 | 5241177
TOTAL | | 33 | sum(values above)
B | TYPE1 | 12 | 5242254
| TYPE2 | 12 | 5570560
TOTAL | | 24 | sum(values above)
C | TYPE1 | 11 | 5239645
| TYPE2 | 12 | 5570560
TOTAL | | 23 | sum(values above)
D | TYPE1 | 12 | 5241862
| TYPE2 | 11 | 5570560
TOTAL | | 23 | sum(values above)
注意:我使用WITH AS来获取总数,但是在每个源名称之间显示它们,即A,B,C,D是我无法做到的事情,我也无法抑制A显示两次在结果中,就像在oracle中它在sourcename上的中断,但是有一个postgres等价吗?列上的计算总和是在oracle中,我找不到postgres等价物。我终于找到了一种方法,使用shell和psql来获得下面所需的结果,但我需要知道是否有更好的方法来执行此操作而不使用它们之间的shell。任何帮助深表感谢。我正在使用psql 9.1.3
我是这个论坛的新手,所以如果你看到我的表格结果不符合查看情况,请告诉我,我会尝试将其设置正确。
(使用PostgreSQL 9.1)