postgresql窗口函数计数

postgresql窗口函数计数,postgresql,window-functions,Postgresql,Window Functions,我可以查询选择COUNT(*)OVER(),id,name,date。。。从user_id=1 LIMIT 20,OFFSET 0的表中,我需要分页计数,这是如何工作的?计算每行的计数还是只计算一次 它会影响索引的使用吗?我知道函数有时会影响索引的使用,但主要是在where子句中 这样做,而不是两个单独的查询(计数,然后数据检索),是否会对性能造成影响?我不会执行子查询,因为它将为每一行运行 谢谢使用窗口函数比运行两个查询效率更高。对索引使用没有可能的影响 窗口函数是在生成结果集之后,但在限制和

我可以查询
选择COUNT(*)OVER(),id,name,date。。。从user_id=1 LIMIT 20,OFFSET 0的表中,我需要分页计数,这是如何工作的?计算每行的计数还是只计算一次

它会影响索引的使用吗?我知道函数有时会影响索引的使用,但主要是在where子句中

这样做,而不是两个单独的查询(计数,然后数据检索),是否会对性能造成影响?我不会执行子查询,因为它将为每一行运行


谢谢

使用窗口函数比运行两个查询效率更高。对索引使用没有可能的影响

窗口函数是在生成结果集之后,但在
限制
偏移
之前计算的。结果将作为附加列添加到每行

我看不出您使用此窗口函数计算的总计数对分页有何用处


另一方面,如果没有
ORDER BY子句,使用
LIMIT
OFFSET
是毫无意义的。

好吧,如果你想生成像“last”这样的分页链接,你需要知道总数。