在SQLAlchemy中使用OVER窗口功能


问题内容

如何使用SQLAlchemy获得有限结果的总数。我目前正在使用Postgres,所以我知道我可以使用窗口函数。我基本上想知道如何在SQLAlchemy中编写以下内容:

SELECT foo
  ,count(*) OVER() AS full_count
FROM   bar
ORDER  BY <some col>
LIMIT  <pagesize>
OFFSET <offset>

问题答案:

就像是:

select(
    [
        bar.c.foo,
        func.count().over().label('full_count'),
    ],
    ...
)

引入此操作的故障单:http :
//www.sqlalchemy.org/trac/ticket/1844#comment:9