3 回答
TA贡献1895条经验 获得超3个赞
纯SQL
SELECT foo , count(*) OVER() AS full_count FROM bar WHERE <some condition>ORDER BY <some col>LIMIT <pagesize>OFFSET <offset>
full_count <= OFFSET + LIMITfull_count.
角箱OFFSETfull_count
运行带有限制/偏移量的查询,并获得行总数
WHERE条款(及 JOIN条件,而不是这里)从基表中筛选符合条件的行。 (
GROUP BY聚合函数就在这里)。 窗口函数的应用考虑了所有符合条件的行(取决于 OVER子句和函数的框架规范)。简约 count(*) OVER()基于所有行。 ORDER BY(
DISTINCT或 DISTINCT ON) LIMIT/OFFSET根据已建立的顺序应用于选择要返回的行。
LIMIT / OFFSET
在大表上使用偏移量优化查询
获得最终计票的备选方案
OFFSET & LIMIT
GET DIAGNOSTICS integer_var = ROW_COUNT;
pg_num_rows
TA贡献1853条经验 获得超6个赞
添加回答
举报
