【发布时间】:2016-04-28 00:25:03
【问题描述】:
我的数据库中有以下关系,
id | month | balance |
-----------+------------+---------+
0009gmail | 2016-01-01 | 2000 |
0009gmail | 2016-02-01 | 3500 |
0009gmail | 2016-03-01 | 800 |
0009gmail | 2016-04-01 | 1400 |
0009gmail | 2016-05-01 | -500 |
问题是,我想要日期小于指定日期的不同 id 的余额总和,
我正在使用这个查询:
select distinct(id),sum(balance) from payment group by id,month having month<'2016-06-22';
但它给出了这个结果,
id | sum
-------------+---------
0009gmail | 2000
0009gmail | 800
0009gmail | 1400
0009gmail | 3500
0009gmail | -500
我想我之所以得到这个结果是因为将月份放在了 group by 子句中,但是删除同样的会给出一个错误,即月份必须在聚合函数的任一 group by 中,我想要这个输出,
id | sum
----------+---------
0009gmail | 7200
请帮忙..
【问题讨论】:
标签: sql postgresql group-by distinct