postgresql 计算结果集的总和

Posted

技术标签:

【中文标题】postgresql 计算结果集的总和【英文标题】:postgresql calculate sum of a resultset 【发布时间】:2011-11-14 14:52:55 【问题描述】:

postgresql 中是否有任何内置函数来获取列的总和。

只是一个简单的例子

CREATE TABLE sample_table (a INTEGER, b REAL);
INSERT INTO sample_table (a, b) VALUES (5, 7.22);
INSERT INTO sample_table (a, b) VALUES (5, 5.6);
INSERT INTO sample_table (a, b) VALUES (1, 23.5);
INSERT INTO sample_table (a, b) VALUES (1, 2.2)

现在假设我想得到 'b' 的所有值的总和,其中 a = 5 我该怎么做?

【问题讨论】:

【参考方案1】:
SELECT sum(b) 
FROM sample_data
WHERE a = 5

您还可以使用 group by 来获取 a 的不同值的列表以及与每个 a 对应的 b 的总和:

SELECT a, sum(b)
FROM sample_data
GROUP BY a

【讨论】:

【参考方案2】:

我认为只是

SELECT SUM(b) FROM sample_table WHERE a = 5;

您可以在这里了解所有 Postgres 聚合函数:

http://www.postgresql.org/docs/current/static/functions-aggregate.html

【讨论】:

以上是关于postgresql 计算结果集的总和的主要内容,如果未能解决你的问题,请参考以下文章

Postgres数据库之聚集函数内核源码学习总结

POSTGRES Group BY中的聚合函数

Postgres 每小时按数据分组,然后找到 max 和 min createdAt 的时间差并计算它们的总和

如何计算 Postgresql 中特定日期最后 7 行的累积总和?

PostgresQL 中有没有rownum这样的,显示结果集的序号

postgres —— 分组集