Thread: retrieve grouping sets/rollup rows
Hello:
With JDBC, how can I tell which row is for which grouping sets or rollupDo 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 > >
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=1On 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
>
>
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 > > > > > >
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 >> > >> > >> >>
>> 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
/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 >
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