db.person.id.count() returns an Expression object. It generates SQL like "COUNT(person.id)". When it is passed to the .select(), the count is returned as one of the columns in the result. The key used to identify the count column in each Row object of the result is the count SQL itself (i.e., "COUNT(person.id)"), so you can access the count in each row via:
row['COUNT(person.id)'] However, the __str__ method of the Expression object will also return the SQL, so you can instead do: row[str(count)] To make things even easier, if you pass an Expression object as the key to a Row, it will automatically apply the __str__ method, so you can just do: row[count] which is the method used in the book example. Anthony On Thursday, April 25, 2013 3:55:46 PM UTC-4, Domagoj Kovač wrote: > > count = db.person.id.count() > > I understand this line of code, it is obvious that limitby clause here > would be stupid. > > >>> for row in db(db.person.id==db.thing.owner_id).select( > db.person.name, count, groupby=db.person.name): > print row.person.name, row[count] > Alex 2 > Bob 1 > > I don't understand what is the purpose of the count here, and is this > count related to the count above. > > > -- --- 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 web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.