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中p分位数的第n行_Postgresql_Cursor_Limit_Offset_Quantile - Fatal编程技术网

PostgreSQL中p分位数的第n行

PostgreSQL中p分位数的第n行,postgresql,cursor,limit,offset,quantile,Postgresql,Cursor,Limit,Offset,Quantile,我正在尝试获取查询结果的第n行。进一步的帖子建议使用偏移量或限制,但禁止使用变量错误:偏移量的参数不能包含变量。此外,我还了解了游标的用法,但即使在阅读了它们的PostgreSQL手册页之后,我也不太确定如何使用它们。关于如何使用游标还有其他建议或示例吗 我的主要目标是计算一行的p-分位数,因为PostgreSQL默认不提供这个函数,所以我必须自己编写它 欢呼声下面返回结果集的第5行: select * from ( select <column_list>,

我正在尝试获取查询结果的第n行。进一步的帖子建议使用偏移量或限制,但禁止使用变量错误:偏移量的参数不能包含变量。此外,我还了解了游标的用法,但即使在阅读了它们的PostgreSQL手册页之后,我也不太确定如何使用它们。关于如何使用游标还有其他建议或示例吗

我的主要目标是计算一行的p-分位数,因为PostgreSQL默认不提供这个函数,所以我必须自己编写它


欢呼声

下面返回结果集的第5行:

select *
from (
   select <column_list>,
          row_number() over (order by some_sort_column) as rn
) t
where rn = 5;
您必须包含order by,否则第5行的概念就没有意义了

你们提到了变量的使用,所以我不确定你们到底想实现什么。但是您应该能够将值5作为此查询的变量,甚至作为子选择提供


您可能还想深入研究窗口功能。因为这样,您可以在当前行或类似构造之前对3行进行求和,这对您也很有用。

下面返回结果集的第5行:

select *
from (
   select <column_list>,
          row_number() over (order by some_sort_column) as rn
) t
where rn = 5;
您必须包含order by,否则第5行的概念就没有意义了

你们提到了变量的使用,所以我不确定你们到底想实现什么。但是您应该能够将值5作为此查询的变量,甚至作为子选择提供


您可能还想深入研究窗口功能。因为这样,您可以在当前行或类似结构之前对3行进行求和,这对您也很有用。

如果您想获得第10条记录,下面的查询也可以

 select * from table_name order by sort_column limit 1 offset 9

偏移量只是在开始返回LIMIT子句中提到的行之前跳过这么多行

如果您想获得第10条记录,下面的查询也可以

 select * from table_name order by sort_column limit 1 offset 9

偏移量只是在开始返回LIMIT子句中提到的行之前跳过这么多行

您使用的是哪个PostgreSQL版本?因为我很确定你可以在OFFSET子句中使用一个变量——至少在最新版本中是这样。你看到了吗:嘿,伙计,我在用PostgreSQL 8.4。是的,我看到了,但是我无法安装分位数扩展。它还使用外部c代码,我尽量避免这些可能也会让你开始:是的,在发布之前我已经发现了,但是再次感谢你的努力,你使用的是哪个PostgreSQL版本?因为我很确定你可以在OFFSET子句中使用一个变量——至少在最新版本中是这样。你看到了吗:嘿,伙计,我在用PostgreSQL 8.4。是的,我看到了,但是我无法安装分位数扩展。它还使用外部c代码,我试图避免这些可能也会让您开始:是的,我已经发现,在发布之前,但再次感谢您的努力,thx查询将以您喜欢的方式返回行。否,因为我无法在LIMIT或OFFSETwill中使用聚合函数。否,因为我无法在LIMIT或OFFSETwill中使用聚合函数。否,因为我无法在LIMIT中使用聚合函数限制或偏移