Postgresql 在Web2py上使用distinct时,如何使用orderby id
我正在使用postgresql数据库,并且有一个Postgresql 在Web2py上使用distinct时,如何使用orderby id,postgresql,web2py,Postgresql,Web2py,我正在使用postgresql数据库,并且有一个log表。我想显示此日志中的票证信息,并想按id排序。但票证id具有重复数据,因此我使用distinct进行筛选,然后在使用distinct时无法按id排序 我如何解决这个问题?谢谢 rows = db(db.log.ticket_id != '').select(db.log.ALL, orderby=~db.log.id, distinct=db.log.ticket_id , limitby=((page-1) * PAGE_ROWS, (p
log
表。我想显示此日志中的票证信息,并想按id排序。但票证id具有重复数据,因此我使用distinct进行筛选,然后在使用distinct时无法按id排序
我如何解决这个问题?谢谢
rows = db(db.log.ticket_id != '').select(db.log.ALL, orderby=~db.log.id, distinct=db.log.ticket_id , limitby=((page-1) * PAGE_ROWS, (page*PAGE_ROWS)))
我收到了错误消息:
SELECT DISTINCT ON expressions must match initial ORDER BY expressions
我试图:
rows = db(db.log.ticket_id != '').select(db.log.ALL, orderby=~db.log.id|db.log.ticket_id, distinct=db.log.ticket_id , limitby=((page-1) * PAGE_ROWS, (page*PAGE_ROWS)))
但仍然无法工作…选择“表达式上的不同项”必须按表达式匹配初始顺序。错误消息非常简单,请尝试orderby=~db.log.ticket\u id | db.log.id
。这是DISTINCT ON
的已知限制,因此,如果我想按id
排序,是不可能的?您不能先按id
排序,而不在DISCTINT ON
子句中指定它(在某些情况下,这可能足够了,但您应该从表结构中提供更多信息以解决此问题)--另一个解决方法是,您可以使用子选择并在外部选择中对结果排序。好的,谢谢您的帮助。:)