| 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: | Whole Thread | Raw Message | 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
| 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 |