On Wednesday, August 24, 2016 at 10:29:09 PM UTC-7, Encompass solutions wrote: > > Does this seem sensible? It seems to work with my initial tests. > > latest_versions = db( (db.item.id == db.item_version.artifact_id) & > (db.item_version.id > 0) > > ).select(db.item.ALL,db.item_version.version_date.max(), groupby= > db.item.id) > > the .max() feature, at least what I found, was totally undocumented. >
Totally? You mean, there isn't <URL:http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#sum--avg--min--max-and-len> ? We should have an example database as part of the documentation with a > collection of examples around it so we can all relate better. :/ > > Examples in book, using it on severity of logged events. /dps > On Monday, August 22, 2016 at 10:52:55 AM UTC+3, Encompass solutions wrote: >> >> Consider the following pseudo model. >> >> item >> ->name = "string" >> >> version >> ->item_id = item.id >> ->version_date = "datetime" >> >> >> While I can easily create a collection of the item with it's versions. >> all_items = db((db.item.id > 0) & (db.version.item_id == db.item.id >> )).select(orderby=db.item.name | db.version.version_date) >> >> How do get just all items with just the latest version of each item >> without having to do this.... >> items = [] >> current_id = all_items.first().item.id >> for thing in all_items: >> if thing.item.id != current_id: >> current_id = thing.item.id >> items.append(thing) >> >> It seems a bit silly and heavy to be doing this especially since my data >> could get quite large. I imaging the database has some way to do this, >> just never learned how. >> >> Ideas on how this could be done? >> >> BR, >> Jason Brower >> >> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

