【发布时间】:2019-01-26 04:53:46
【问题描述】:
我有一个如下所示的 postgresql 表:
name |rock|paper|scissors
__________|____|_____|________
rock | .5 | 0 | 2
paper | 2 | 1 | 0
scissors | 1 | 4 | 2
我想创建一个 postgresql 视图,将每个名称的行和列汇总在一起,如下所示:
name |strong|weak
__________|______|____
rock | 2.5 | 2.5
paper | 3 | 5
scissors | 7 | 4
我在第二个表中想要的是两列。一个是第一个表的行中所有列的总和,按名称分隔。第二列是该列等于名称的行的总和。
我可以让strong 列按我想要的方式工作,但我不知道如何获得weak 列。这是我最近的尝试。
SELECT
name,
(rock + paper + scissors) AS strong,
(sum(rock) + sum(paper) + sum(scissors)) AS weak
FROM mytable
GROUP BY name;
这只会产生一个弱列等于强列的表,如下所示:
name |strong|weak
__________|______|____
rock | 2.5 | 2.5
paper | 3 | 3
scissors | 7 | 7
我怎样才能达到我想要的结果?
【问题讨论】:
标签: sql postgresql