我无法理解窗口函数的概念。它们究竟是如何工作的,这种技术的优缺点是什么?
我读过使用限制和偏移量很慢但仍在使用。因此,限制/偏移和窗口函数之间的决定取决于从数据库中获取的数据大小,还是应该始终使用窗口函数?
从中获得最大性能的理想窗口大小是多少?如果要获取的行数少于那么简单地使用限制/偏移量,是否会出现这种情况?
我的用例基本上需要按日期对数据进行排序,然后首先带来最新的数据。窗口函数如何适应这种情况。
我无法理解窗口函数的概念。它们究竟是如何工作的,这种技术的优缺点是什么?
我读过使用限制和偏移量很慢但仍在使用。因此,限制/偏移和窗口函数之间的决定取决于从数据库中获取的数据大小,还是应该始终使用窗口函数?
从中获得最大性能的理想窗口大小是多少?如果要获取的行数少于那么简单地使用限制/偏移量,是否会出现这种情况?
我的用例基本上需要按日期对数据进行排序,然后首先带来最新的数据。窗口函数如何适应这种情况。
基本区别在于,窗口函数应用于结果集中的所有行,以在确定结果集的其余部分后计算其他列。没有行被删除。它们从 PostgreSQL 8.4 开始可用。
另一方面,命令的
LIMIT
andOFFSET
子句不计算额外的列。SELECT
他们只是从结果集中选择某个“窗口”的行(与ORDER BY
子句合作)并丢弃其余的。一直在那里。虽然某些任务可以使用这两种工具中的任何一种来解决,但它们在本质上是非常不同的。
为了你的简单任务
你不需要他们中的任何一个。只需添加:
根据您的评论,您需要:
检索更多:
在任何一种情况下,一定要在 date_col 上有一个索引!