Postgre Group по количественным интервалам - PullRequest
0 голосов
/ 28 ноября 2018

Итак, у меня есть таблица, например, с товарами по ценам.Цена от 1 $ до 15 000 $.Поэтому я хотел бы посчитать количество продуктов в каждом интервале 1000 $.В принципе, я хотел бы знать, сколько продуктов стоит больше 0 и меньше 1000 долларов, сколько стоит более 1000 долларов меньше, чем 2000 долларов.Я знаю, как сделать то же самое со временем, но не с суммами. Результат должен выглядеть примерно так:

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

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018
SELECT round(price,-3), count(*) FROM prices GROUP BY 1 ORDER BY 1;
0 голосов
/ 28 ноября 2018

Самый простой метод - это агрегирование с некоторой математикой:

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