[xquery-talk] group by queries - a more efficient approach

Jason Hunter jhunter at servlets.com
Fri Aug 1 12:08:40 PDT 2003


If you want a $book variable bound then yes you need a FLWOR.  But you 
may not really need a $book variable bound as my code rewrite shows. 
Most people write FLWORs because they think "for loop" from procedural 
programming but they aren't always necessary and at least some engines 
perform faster without them.

-jh-

Dmitri.Colebatch at toyota.com.au wrote:

> Jason,
> 
> Thanks for the tip....  problem is that my contrieved example didn't really
> show what I need to do.  I want to modify the structure more than my
> example shows.
> 
> Your suggestion does work, but I cant see a way to step from that to having
> access to a $book variable - am I right that I do need the for loop to get
> access to that?
> 
> thanks
> dim
> 
> 
> 
> 
> 
> Jason Hunter <jhunter at servlets.com>@x-query.com on 01/08/2003 01:58:53 PM
> 
> Sent by:    talk-bounces at x-query.com
> 
> 
> To:    Dmitri.Colebatch at toyota.com.au
> cc:    talk at x-query.com
> Subject:    Re: [xquery-talk] group by queries - a more efficient approach
> 
> 
>>for $s in distinct-values($this/mydata/book/subject)
>>return
>>      <books-by-subject>
>>      {
>>            for $book in $this/mydata/book[subject/text() = $s/text()]
>>                  return
>>                        <book>
>>                              <name>{$book/name}</name>
>>                              <subject>{$book/subject}</subject>
>>                        </book>
>>      }
>>      </books-by-subject>
> 
> 
> I suspect something like this would work.  I haven't run it or anything.
>   Basically you can remove the /text() node tests and can return the
> book nodes directly without needing a FLWOR.
> 
> for $s in distinct-values($this/mydata/book/subject)
> return
>        <books-by-subject>
>        {
>              $this/mydata/book[subject = $s]
>        }
>        </books-by-subject>
> 
> -jh-
> 
> 
> _______________________________________________
> talk at x-query.com
> http://www.x-query.com/mailman/listinfo/talk
> 
> 
> 
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>                                DISCLAIMER
> * This email and any attachment may contain confidential information.
>   If you are not the intended recipient you are not authorised to copy
>   or disclose all or any part of it without the prior written consent
>   of Toyota.
> * Opinions expressed in this email and any attachment are those of the
>   sender and not necessarily the opinions of Toyota.
> * Please scan this email and any attachment for viruses.  Toyota does
>   not accept any responsibility for problems caused by viruses, whether
>   it is Toyota's fault or not.
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> 
> 
> 



More information about the talk mailing list