いろいろ試しましたが、正しい方法が見つかりません。Postgres で値を選択して合計すると、次のようになります。
SELECT name,sum(size) as total
FROM mytable group by name order by name;
これを変更して、すべての値を合計するようにするにはどうすればよいですか? サブセレクトが必要だと思いますが、どうすればよいですか?
いろいろ試しましたが、正しい方法が見つかりません。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
更新 申し訳ありませんが、すべてを同じクエリに入れたいとは読んでいません。このため、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ですべての結果が必要な場合は、次のようにすることができます
SELECT
'grand total' AS name,
sum(size) AS sum
FROM
mytable
UNION ALL
SELECT
name,
sum(size) AS sum
FROM
mytable
GROUP BY
name;
お役に立てば幸いです…</p>
これはあなたを助けるはずです:
select sum(innerselect.innertotal) as outertotal from
(select sum(size) as innertotal from mytable group by name) as innerselect