【问题标题】:Window functions vs vanilla SQL窗口函数与普通 SQL
【发布时间】:2016-07-19 21:43:21
【问题描述】:

如果我们将窗口函数视为普通 SQL 的扩展,那么它们的优势是什么?

您能否执行“普通”SQL 无法执行的查询和操作?

【问题讨论】:

  • 近二十年来,窗口函数一直是 ANSI SQL 的一部分。为什么你会认为它们是扩展?但是对您的问题的一个简单答案是它们更简洁,更快,并且扩展了基本 SQL 的功能。也许这就是为什么它们在标准中。
  • 'extension' 被用作消除问题范围歧义的一种方式;如果您可以在不使用窗口函数的情况下获得相同的结果

标签: sql database analytic-functions


【解决方案1】:

简单的答案是“是”,您可以做一些其他情况下不可能完成的事情——至少不能在单个查询中完成。

一个简单的例子是row_number(),您不能在没有唯一键的表上复制(在单次选择中)。

【讨论】:

  • 如果使用具有二次复杂度的三角连接,在 使用 唯一键的表上复制 row_number 可能会非常低效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 2018-01-03
  • 1970-01-01
  • 2012-01-08
  • 1970-01-01
  • 2017-12-17
相关资源
最近更新 更多