[xquery-talk] return only latest version of an item

Wolfgang wolfgang at exist-db.org
Thu May 14 23:41:31 PDT 2009


> Unfortunately though, I tried your suggestion but only returned one item 
> which was had the greatest version of all items.

Which must be a bug. saxon returns a different result.

> As far as implementation, I'm querying eXist-db 1.2.5.

Using distinct-values to group by id could be another option, though 
maybe not the fastest:

for $id in distinct-values(/items//id)
let $itemsById := /items/item[id = $id]
return
     $itemsById[version = max($itemsById/version)]

You should have an index on id and version in any case.

Wolfgang


More information about the talk mailing list