首页 > 解决方案 > 使用SQL语句构造聚合器计算矩阵的数据总和

问题描述

我最近尝试构建一个聚合器来计算整个表数据的总和。你有什么意见吗?

以下是我的表结构和数据:</p>

CREATE TABLE matrix (
id INT NOT NULL PRIMARY KEY UNIQUE,
room INT NOT NULL,
salary INT NOT NULL, 
time INT NOT NULL);



 id | room | salary | time 
----+------+--------+------
  1 |  101 |    100 |    7
  2 |  205 |    150 |    8
  3 |  304 |    160 |    7
  4 |  106 |    200 |    8

我想通过构造一个聚合器来计算整个表数据的总数,使其输出如下所示:

sum
------
1366

有什么好的解决办法吗?

标签: sqlpostgresqlmatrix

解决方案


您没有告诉我们您正在使用的 DBMS,但在标准 SQL 中,您可以使用横向连接“取消透视”列,然后对结果求和:

select sum(t.val)
from matrix
  cross join lateral ( values (room), (salary), (time) ) as t(val);

推荐阅读