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