Thread: retrieve grouping sets/rollup rows

retrieve grouping sets/rollup rows

From
Tom Smith
Date:
Hello:

With JDBC, how can I tell which row is for which grouping sets or rollup
using result sets

Thanks


Re: retrieve grouping sets/rollup rows

From
James Keener
Date:
Do you want to know if a row is from the (a,b) or (c,d) group?  All rows
will contain (a,b,c,d) but (a,b) will be NULL for the (c,d) grouping
sets, and vice-versa.

Jim

On 03/13/2016 09:45 PM, Tom Smith wrote:
> Hello:
>
> With JDBC, how can I tell which row is for which grouping sets or rollup
> using result sets
>
> Thanks
>
>


Re: retrieve grouping sets/rollup rows

From
Tom Smith
Date:
It would help if the resultset has some param to mark which is which with the grouping sets index.
for example, the results for (a,b,c,d) would be marked as for index =0,  (b,c,d) would be index=1

On Sun, Mar 13, 2016 at 9:52 PM, James Keener <jim@jimkeener.com> wrote:
Do you want to know if a row is from the (a,b) or (c,d) group?  All rows
will contain (a,b,c,d) but (a,b) will be NULL for the (c,d) grouping
sets, and vice-versa.

Jim

On 03/13/2016 09:45 PM, Tom Smith wrote:
> Hello:
>
> With JDBC, how can I tell which row is for which grouping sets or rollup
> using result sets
>
> Thanks
>
>

Re: retrieve grouping sets/rollup rows

From
James Keener
Date:
Why? You're already provided with this information: NULL fields are not
being used in the grouping set for the row. Moreover, it would seem to
be an implementation- and run-time- dependent value, as there is no
reason group by grouping set (a,b), (c,d) couldn't be executed in
written order, or (c,d) first depending on a lot of things.

Forcing the implementation to conform to a certain way of doing things
is asking for someone to ask why a certain optimization isn't being
performed later on.

My $0.02.

Jim

On 03/13/2016 10:07 PM, Tom Smith wrote:
> It would help if the resultset has some param to mark which is which
> with the grouping sets index.
> for example, the results for (a,b,c,d) would be marked as for index =0,
> (b,c,d) would be index=1
>
> On Sun, Mar 13, 2016 at 9:52 PM, James Keener <jim@jimkeener.com
> <mailto:jim@jimkeener.com>> wrote:
>
>     Do you want to know if a row is from the (a,b) or (c,d) group?  All rows
>     will contain (a,b,c,d) but (a,b) will be NULL for the (c,d) grouping
>     sets, and vice-versa.
>
>     Jim
>
>     On 03/13/2016 09:45 PM, Tom Smith wrote:
>     > Hello:
>     >
>     > With JDBC, how can I tell which row is for which grouping sets or
>     rollup
>     > using result sets
>     >
>     > Thanks
>     >
>     >
>
>


Re: retrieve grouping sets/rollup rows

From
James Keener
Date:
It just dawned on me that you may note have meant having them in a
specific sequence in the result set.  Even still, I think it's much more
clear being explicit with what rows are included and which aren't.

Jim

On 03/13/2016 10:12 PM, James Keener wrote:
> Why? You're already provided with this information: NULL fields are not
> being used in the grouping set for the row. Moreover, it would seem to
> be an implementation- and run-time- dependent value, as there is no
> reason group by grouping set (a,b), (c,d) couldn't be executed in
> written order, or (c,d) first depending on a lot of things.
>
> Forcing the implementation to conform to a certain way of doing things
> is asking for someone to ask why a certain optimization isn't being
> performed later on.
>
> My $0.02.
>
> Jim
>
> On 03/13/2016 10:07 PM, Tom Smith wrote:
>> It would help if the resultset has some param to mark which is which
>> with the grouping sets index.
>> for example, the results for (a,b,c,d) would be marked as for index =0,
>> (b,c,d) would be index=1
>>
>> On Sun, Mar 13, 2016 at 9:52 PM, James Keener <jim@jimkeener.com
>> <mailto:jim@jimkeener.com>> wrote:
>>
>>     Do you want to know if a row is from the (a,b) or (c,d) group?  All rows
>>     will contain (a,b,c,d) but (a,b) will be NULL for the (c,d) grouping
>>     sets, and vice-versa.
>>
>>     Jim
>>
>>     On 03/13/2016 09:45 PM, Tom Smith wrote:
>>     > Hello:
>>     >
>>     > With JDBC, how can I tell which row is for which grouping sets or
>>     rollup
>>     > using result sets
>>     >
>>     > Thanks
>>     >
>>     >
>>
>>


Re: retrieve grouping sets/rollup rows

From
Tom Lane
Date:
>> On 03/13/2016 10:07 PM, Tom Smith wrote:
>>> It would help if the resultset has some param to mark which is which
>>> with the grouping sets index.

I think you're looking for the GROUPING() function.  See
http://www.postgresql.org/docs/9.5/static/functions-aggregate.html

            regards, tom lane


Re: retrieve grouping sets/rollup rows

From
James Keener
Date:
/me has learned something new!

Thanks!


On 03/13/2016 10:44 PM, Tom Lane wrote:
>>> On 03/13/2016 10:07 PM, Tom Smith wrote:
>>>> It would help if the resultset has some param to mark which is which
>>>> with the grouping sets index.
>
> I think you're looking for the GROUPING() function.  See
> http://www.postgresql.org/docs/9.5/static/functions-aggregate.html
>
>             regards, tom lane
>


Re: retrieve grouping sets/rollup rows

From
Tom Smith
Date:
exactly what I am looking for. very nice.  Thx

On Sun, Mar 13, 2016 at 10:44 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> On 03/13/2016 10:07 PM, Tom Smith wrote:
>>> It would help if the resultset has some param to mark which is which
>>> with the grouping sets index.

I think you're looking for the GROUPING() function.  See
http://www.postgresql.org/docs/9.5/static/functions-aggregate.html

                        regards, tom lane