Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
postgreSQL获取超出搜索限制的行的索引_Sql_Postgresql - Fatal编程技术网

postgreSQL获取超出搜索限制的行的索引

postgreSQL获取超出搜索限制的行的索引,sql,postgresql,Sql,Postgresql,我是SQL新手,我不知道如何正确搜索我的问题,所以我将在这里提问 在这个例子中有6行,我限制我的搜索从第一个索引开始,最多给我2行。但是,我想知道id为1的行的索引 当我使用SQLFIDLE中描述的查询时,它会显示id为5和23的行。但它不包括id为1的行。但是,我需要知道id为1的行的索引 上面的链接打印出所有的行,我们可以看到索引3中有一行包含id 1 但是,我需要知道索引,而不需要询问整个数组 为什么这很重要?好吧,假设我们有一百万行。如果我要求一百万行,那就意味着分配一百万个数组。我可以

我是SQL新手,我不知道如何正确搜索我的问题,所以我将在这里提问

在这个例子中有6行,我限制我的搜索从第一个索引开始,最多给我2行。但是,我想知道id为1的行的索引

当我使用SQLFIDLE中描述的查询时,它会显示id为5和23的行。但它不包括id为1的行。但是,我需要知道id为1的行的索引

上面的链接打印出所有的行,我们可以看到索引3中有一行包含id 1

但是,我需要知道索引,而不需要询问整个数组

为什么这很重要?好吧,假设我们有一百万行。如果我要求一百万行,那就意味着分配一百万个数组。我可以解析数组,直到找到要查找的id为止。然而,分配100万美元的费用太高了

例如,假设我要查找的行位于索引26中,但我进行查询时,它从索引0开始,限制为10。我从这个查询中得到的数组不包含索引26。然而,我仍然需要知道,它是在索引26

所以这个神奇的查询会给我两件事:

排序行的前十行 指定id的索引,例如id为1,而不考虑其在列表中的位置。 这是一个可能的问题吗

澄清: 我用索引这个词来表示行号。 如果我们从数据库中查询名称列表,我们可以得到如下结果:

bob frank dawn 然后鲍勃在指数0,弗兰克在指数1,道恩在指数2

如果我按名称ASC排序,那么名称列表将变为

bob dawn frank bob是索引0,frank是索引1,frank是索引2


我希望这能让事情变得更清楚。

如果需要行数,请使用行数功能:

SELECT *
FROM (SELECT ud.id, ud.team_name, ui.name, ui.date_created,
             row_number() over (order by ui.name, ui.id) as rownumber
      FROM user_data ud JOIN
           user_infos ui
           ON ui.id = ud.id  
      WHERE ui.date_created BETWEEN NOW() - INTERVAL '1 year' AND NOW()  
     ) t
WHERE rownumber <= 10 or id = 1;

如果希望它们按顺序排列,只需将order by rownumber添加为最后一条语句。

索引是什么意思?“你没有那个名字的专栏。@戈登林诺夫我在问题的底部做了澄清。请看