Re: Unexpected results when using GROUP BY GROUPING SETS and bind variables

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Aner Perez <aner(dot)perez+pgsql-general(at)gmail(dot)com>
Cc: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Unexpected results when using GROUP BY GROUPING SETS and bind variables
Date: 2020-09-09 18:45:53
Message-ID: 67475.1599677153@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Aner Perez <aner(dot)perez+pgsql-general(at)gmail(dot)com> writes:
> Or if using indexed path elements in the GROUP BY is the issue and I should
> put the array indexing in a subselect and do the aggregation in the outer
> select. Like this:

> -- Safer Subselect Version --
> SELECT level1, level2, level3, level4, sum(value)
> FROM (
> SELECT path[1] as level1, path[2] as level2, path[3] as level3, path[4]
> as level4, value
> FROM bind_group_by
> ) AS expanded
> GROUP BY GROUPING SETS (
> (level1, level2, level3, level4),
> (level1, level2, level3),
> (level1, level2),
> (level1),
> ()
> )
> ORDER BY 1, 2, 3, 4;

Yeah, that one looks a lot safer from here. There's no question about
which expressions are supposed to match what. It should end up with
the same plan, too.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Aner Perez 2020-09-09 18:58:16 Re: Unexpected results when using GROUP BY GROUPING SETS and bind variables
Previous Message Aner Perez 2020-09-09 18:37:22 Re: Unexpected results when using GROUP BY GROUPING SETS and bind variables