从Peewee中的列中选择不同的值

时间:2016-01-16 03:19:11

标签: python python-3.x peewee

我希望使用Peewee选择一列中的所有值。

例如,如果我有表

 Organization     Year   
 company_1         2000
 company_1         2001
 company_2         2000
 .... 

只返回组织列中的唯一值[即company_1company_2]

我认为可以使用http://docs.peewee-orm.com/en/latest/peewee/api.html#SelectQuery.distinct

记录的distinct选项

我目前的代码:

   organizations_returned = organization_db.select().distinct(organization_db.organization_column).execute()

    for item in organizations_returned:
         print (item.organization_column)

不会导致返回不同的行(导致例如company_1两次)。

我试过的另一种选择:

  organization_db.select().distinct([organization_db.organization_column]).execute()

[ ]选项中包含disctinct,虽然看起来与文档更加一致,却导致错误peewee.OperationalError: near "ON": syntax error

我认为可以直接从Peewee返回唯一值 - 如果是这样,我做错了什么?

模型结构:

cd_sql = SqliteDatabase(sql_location, threadlocals=True, pragmas=(("synchronous", "off"),))     

class BaseModel(Model):
    class Meta:
        database = cd_sql

class organization_db(BaseModel):
    organization_column = CharField()
    year_column = CharField()

1 个答案:

答案 0 :(得分:5)

所以coleifer得到的是Sqlite不支持DISTINCT ON。这不是一个大问题,我认为你可以完成你想要的事情:

organization_db.select(organization_db.organization).distinct()