У меня есть следующий код в web2py. Я пытаюсь получить, сколько типов элементов у меня есть в таблице, и подсчитать количество каждого из них.

count = db.table.field1.count()
rows=db((some criteria).select(db.table.field2, count, groupby=db.table.field2)
print rows

Отпечаток этого:

table.field2, COUNT(table.field1)
4,3
6,4
9,2

Теперь я хотел бы отсортировать по полю счетчика от большего к меньшему, чтобы результат был таким:

6,4
4,3
9,2

Как лучше всего это сделать? rows = rows.sort (lambda row: row.COUNT (table.field1)) у меня не сработал.

0
furayo 13 Май 2013 в 08:29

1 ответ

Лучший ответ

Вместо row.COUNT(table.field1) используйте row['COUNT(table.field1)'] или просто row[count] (см. здесь ).

Обратите внимание: вы также можете настроить сортировку базы данных с помощью аргумента orderby:

rows = db(query).select(db.table.field2, count,
                        groupby=db.table.field2, orderby=count)

И в порядке убывания: orderby=~count

1
Anthony 13 Май 2013 в 17:41