За исключением, может быть, при использовании postgresql, как упоминалось в @Anthony, для всех других реляционных баз данных (afaik) отдельные не могут применяться к отдельным полям части набора результатов, кроме всех полей. Web2py отбирает это при использовании параметра. Для этого может быть установлено значение True или для всех запрошенных полей. Как и в книге, из которой я привел соответствующие для вашего удобства.
Если вы используете SQLite Используйте groupby
, как упомянуто Энтони и применять заполнители, например: db().select(db.table.col1.max(), db.table.col3.max(), groupby=db.table.col3)
Надеется, что это помогает.
Из инструкции web2py, aggregates section:
отчетливый
С аргументом отчетливым = True, вы можете указать, что вы хотите выбрать только отдельные записи. Это имеет тот же эффект, что и группировка с использованием всех указанных полей, за исключением того, что не требует сортировки. При использовании разметки важно не выбирать ВСЕ поля и, в частности, не выбирать поле «id», иначе все записи всегда будут отличаться.
Вот пример:
>>> for row in db().select(db.person.name, distinct=True):
print row.name
Алекс
Боб
Карл
Обратите внимание, что различные также может быть выражением, например:
>>> for row in db().select(db.person.name,distinct=db.person.name):
print row.name
Alex
Боб
Карл
Добро пожаловать на переполнение стека :) пожалуйста familiraize себя с тем, как задать хороший вопрос. Пожалуйста, также используйте форматирование в своих вопросах. Сообщите нам более подробную информацию о том, что делает неудачи. – DawidPi