为什么PostgreSQL中的LIMIT и OFFSET(OFFSET ... ROWS FETCH FIRST ... ROW only)函数不起作用?

w41d8nur  于 2023-01-30  发布在  PostgreSQL
关注(0)|答案(1)|浏览(356)

我正在尝试使用LIMIT和OFFSET函数或OFFSET... ROWS FETCH FIRST... ROW only。PostgreSQL在结果中给了我错误的行数。

select user_id, max(order_ts) as lastorder
from production.orders
group by user_id 
order by lastorder desc, user_id desc
OFFSET 10 ROWS 
FETCH FIRST 20 ROW only

select user_id, max(order_ts) as lastorder
from production.orders
group by user_id 
order by lastorder desc, user_id desc
OFFSET 10 
limit 20

仍然为我提供了20行(应该是10:从第10行到第20行-是10)。
怎么样?能帮忙吗?

8cdiaqws

8cdiaqws1#

LIMIT 20告诉服务器返回的记录不要超过20条。FETCH FIRST 20 ONLY完全相同。查询可能返回20行或更少,具体取决于数据和查询条件。如果尝试获取第11行到第20行,则需要指定LIMIT 10 OFFSET 10
详情见文件中的段落 * 限制条款 *:https://www.postgresql.org/docs/15/sql-select.html#SQL-LIMIT

相关问题