当前位置: 首页 > 面试题库 >

如何在PostgreSQL中创建命名窗口分区(别名)?

罗安和
2023-03-14
问题内容

PostgreSQL窗口函数的文档似乎暗示您可以在查询的多个位置使用相同的命名窗口。但是,我不知道如何创建命名窗口?

SELECT first_value(vin) OVER( PARTITION BY vin ) AS w, first_value(make) OVER w
FROM inventory.vehicles
WHERE lot_Id = 9999 AND make is not null;

这是一个开玩笑的查询,我试图获取语法,但出现错误:

错误:窗口“ w”不存在


问题答案:

答案实际上在SELECT文档中:

WINDOW 条款

可选WINDOW子句具有一般形式

WINDOW window_name AS ( window_definition ) [, ...]

这是一个例子

SELECT first_value(vin) OVER w,
  first_value(make) OVER w
FROM inventory.vehicles
WHERE lot_Id = 9999
  AND make is not null
WINDOW w AS ( PARTITION by vin );


 类似资料:
  • 我试图更好地理解PostgreSQL(9.3)窗口函数。假设我有一个简单的表,如下: 并希望: 其中SimpleTable中的记录的tservice时间可以追溯到40年前,但是计数需要限制在每个记录的tservice时间戳之前的三年。 在几十万张唱片上,这在我的笔记本电脑上需要大约10秒钟。有更快的办法吗? 补充说明:使用Erwin概述的带有游标的函数方法将执行时间减少到146ms。感谢大家提供的

  • 问题内容: 我正在将MS Access应用程序(已将表链接到MSSQL Server)迁移到MySQL。 作为克服某些MSAccess表命名问题的方法,我正在寻找一种解决方案以添加一个MySQL表别名,该别名将指向MySQL数据库中的现有表。理想情况下,我想在mysql中创建别名“ dbo_customers”,该别名也指向mysql中的customers表。 需要明确的是,我 不 希望别名这样的

  • 问题内容: 我正在尝试为外部应用程序创建HUD样式显示。 为此,我需要创建一个透明的叠加窗口,该窗口将位于外部应用程序窗口的顶部。覆盖窗口应允许我放置小部件并在其上绘制文本。如果事件发生在透明区域上,则事件应该转发到基础窗口(否则,使窗口小部件可以按预期工作)。 我正在使用Java的OSX上执行此操作。我希望可以使用纯Java来实现此目的,并且可以移植到其他平台,但如果不可能的话,我会选择可以通过

  • 问题内容: 如何在node.js中创建命名管道? PS:目前,我正在按如下方式创建命名管道。但是我认为这不是最好的方法 问题答案: 看起来,Node核心不支持名称管道-从Ben Noordhuis 11/10/11开始: Windows具有命名管道的概念,但是自您提到以来,我假设您的意思是UNIX FIFO。 我们不支持它们,可能永远也不会(在非阻塞模式下的FIFO可能会死锁事件循环),但是如果您

  • 我想在JavaFX应用程序中创建一个弹出窗口。给我一些想法。 当我点击检查按钮时,它会打开弹出窗口。怎么做?

  • 我不知道如何在JavaFX中创建模式窗口。基本上我有文件选择器,我想在用户选择文件时问他们一个问题。我需要这些信息来解析文件,因此执行需要等待答案。 我已经看到了这个问题,但我还没有找到如何实现这个行为。