Postgre按金额间隔分组

时间:2018-11-28 13:50:05

标签: sql postgresql integer intervals

例如,我有一张桌子,上面有价格的产品。价格从1美元到15000美元不等。所以我想计算每个1000 $间隔内的产品数量。基本上,我想知道有多少产品的价格超过0且低于1000 $,有多少产品的价格超过1000 $而低于2000 $。 我知道如何用时间做同样的事情,但是用金额却做不到 结果应该像

Interval    Amount
1000        5
2000        4
3000        8
...         ...
14000       6
15000       8

2 个答案:

答案 0 :(得分:1)

最简单的方法是通过一些数学运算进行聚合:

select ceil(amount / 1000) * 1000 as amt_group, count(*)
from t
group by amt_group
order by amt_group;

答案 1 :(得分:1)

SELECT round(price,-3), count(*) FROM prices GROUP BY 1 ORDER BY 1;