Re: Group by a range of values

From: Torsten Grust <torsten(dot)grust(at)gmail(dot)com>
To: pgsql-sql <pgsql-sql(at)lists(dot)postgresql(dot)org>
Subject: Re: Group by a range of values
Date: 2020-08-01 12:34:54
Message-ID: CAGqkgpgDH7O_AqtPcY91y2TrPaEF4oe-jFwuqXeuFCedgSAUXw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi,

maybe this does the job already (/ is integer division):

SELECT i, 1 + (i-1) / 3
FROM generate_series(1,10) AS i;

An expression like (i-1) / 3 could, of course, also be used as partitioning
criterion in GROUP BY and/or window functions.

Cheers,
—T

On Sat, Aug 1, 2020 at 2:15 PM Mike Martin <redtux1(at)gmail(dot)com> wrote:

> Say I have a field of ints, as for example created by with ordinality or
> generate_series, is it possible to group by a range? eq
>
> 1,2,3,4,5,6,7,8,9,10
> step 3
> so output is
>
> 1 1
> 2 1
> 3 1
> 4 2
> 5 2
> 6 2
> 7 3
> 8 3
> 9 3
> 10 4
>
> thanks
>

--
| Torsten Grust
| Torsten(dot)Grust(at)gmail(dot)com

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Rob Sargent 2020-08-01 12:53:38 Re: Group by a range of values
Previous Message Mike Martin 2020-08-01 12:14:34 Group by a range of values