Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 在Web2py上使用distinct时,如何使用orderby id_Postgresql_Web2py - Fatal编程技术网

Postgresql 在Web2py上使用distinct时,如何使用orderby id

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

我正在使用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, (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
子句中指定它(在某些情况下,这可能足够了,但您应该从表结构中提供更多信息以解决此问题)--另一个解决方法是,您可以使用子选择并在外部选择中对结果排序。好的,谢谢您的帮助。:)