create table products (
id serial,
product varchar,
price int
);
insert into products (product, price) values
('prod1', 100), ('prod2', 101),('prod3', 1000),
('prod1', 990), ('prod2', 102),('prod3', 562);
with p as (
select
*,
min(price) over() min_price,
(max(price) over() - min(price) over()) / 3 step
from products
) select
id, product, price,
case
when price < min_price + step then 'low_price'
when price < min_price + 2 * step then 'mid_price'
else 'high'
end as category
from p
order by price;