Sql 表中按Id排序和按Id限制偏移量

Sql 表中按Id排序和按Id限制偏移量,sql,postgresql,Sql,Postgresql,我有一个类似于以下查询的问题: select name, number, id from tableName order by id limit 10 offset 5 但在本例中,我只从偏移量为5的组中选取10个元素 有没有办法通过id设置限制和偏移 例如,如果我有一套: |------------------------------------|---|---------------------------------------| | Ana

我有一个类似于以下查询的问题:

select name, number, id
from tableName
order by id 
limit 10 offset 5
但在本例中,我只从偏移量为5的组中选取10个元素 有没有办法通过id设置限制和偏移


例如,如果我有一套:

|------------------------------------|---|---------------------------------------|
| Ana                                | 1 | 589d0011-ef54-4708-a64a-f85228149651  |
| Jana                               | 2 | 589d0011-ef54-4708-a64a-f85228149651  |
| Jan                                | 3 | 589d0011-ef54-4708-a64a-f85228149651  |
| Joe                                | 2 | 64ed0011-ef54-4708-a64a-f85228149651  |
如果我有跳过1,我应该得到

|------------------------------------|---|---------------------------------------|
| Jana                               | 2 | 589d0011-ef54-4708-a64a-f85228149651  |
| Jan                                | 3 | 589d0011-ef54-4708-a64a-f85228149651  |

我认为您希望按行号进行过滤:

查询按id将记录与具有相同名称的记录组进行排序,然后使用两个参数进行筛选:

:每个组的记录数要跳过:每个组应跳过多少记录 :记录数\u每个组\u到\u跳过:跳过后每个组应保留多少记录:记录数\u每个组\u到\u跳过记录
这可能不是您要寻找的答案,但它提供了示例所示的结果:

select name, number, id
from (
   select * from tableName
   order by id 
   limit 3 offset 0
) d
where id > 1;
致以最良好的祝愿,
Bjarni

你说用id抵消是什么意思?样本数据和期望的结果会有所帮助。枚举CTE中的记录,并根据ID值限制该数字。你能详细说明你的问题吗?例如,如果我有一组:Ana,1589D0011-ef54-4708-a64a-f85228149651 Jana,2589D0011-ef54-4708-a64a-f85228149651 Jan,3589D0011-ef54-4708-a64a-f85228149651 Joe,2,64ed0011-ef54-4708-a64a-f85228149651,如果我有跳过1,我应该得到Jana,2589D0011-ef54-4708-a64a-f85228149651 Jan,3589D0011-ef54-4708-a64a-f85228149651嘿,不作为评论。改为编辑问题。
select name, number, id
from (
   select * from tableName
   order by id 
   limit 3 offset 0
) d
where id > 1;