postgresql вычисляет сумму результирующего набора - PullRequest
10 голосов
/ 11 сентября 2011

Есть ли какая-либо встроенная функция в 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
Как бы я это сделал?

Ответы [ 2 ]

26 голосов
/ 11 сентября 2011

Я думаю, что это будет просто

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

Вы можете узнать обо всех агрегатных функциях Postgres здесь:

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

4 голосов
/ 11 сентября 2011
SELECT sum(b) 
FROM sample_data
WHERE a = 5

Вы также можете использовать group by, чтобы получить список различных значений для a вместе с суммами b, соответствующими каждому из a:

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