我尝试了很多,但找不到正确的方法。 如果我选择在Postgres的价值观,总结他们来说,这看起来是这样的:Postgres:选择值的总和,然后再总结一遍
SELECT name,sum(size) as total
FROM mytable group by name order by name;
我怎样才能改变这一所以它也总结在总的所有值?我想我需要一个子选择,但是如何?
我尝试了很多,但找不到正确的方法。 如果我选择在Postgres的价值观,总结他们来说,这看起来是这样的:Postgres:选择值的总和,然后再总结一遍
SELECT name,sum(size) as total
FROM mytable group by name order by name;
我怎样才能改变这一所以它也总结在总的所有值?我想我需要一个子选择,但是如何?
试试这个:
SELECT sum(a.total)
FROM (SELECT sum(size) as total
FROM mytable group by name) a
UPDATE 对不起,我不读,你想这一切在相同的查询。为此,greg的答案更好。然而,另一种可能性,如果你有一个PostgreSQL版本> = 9:
WITH mytableWith (name, sum) as
(SELECT name, sum(size)
FROM mytable
GROUP BY name)
SELECT 'grand total' AS name,
sum(sum) AS sum
FROM mytableWith
UNION ALL
SELECT name, sum
FROM mytableWith
嗯,这应该可以帮助您:
select sum(innerselect.innertotal) as outertotal from
(select sum(size) as innertotal from mytable group by name) as innerselect
如果你想用相同的SELECT所有的结果,你可以做类似
SELECT
'grand total' AS name,
sum(size) AS sum
FROM
mytable
UNION ALL
SELECT
name,
sum(size) AS sum
FROM
mytable
GROUP BY
name;
希望它有帮助...