我是 SQL 语言和 PostgreSQL 的新手。我逐渐熟悉了这门语言,并一直在学习 PostgreSQL 教程,直到我陷入有关窗口函数的章节(链接文本)。我创建了完全相同的表“empsalary”,如示例所示:
wtouw=# 从雇员中选择*; 部门名称 | 员工号 | 薪水 -----------+--------+-------- 开发| 11 | 11 5200 开发| 7 | 4200 开发| 9 | 4500 开发| 8 | 6000 开发| 10 | 10 5200 人员 | 5 | 3500 人员 | 2 | 3900 销售| 3 | 4800 销售| 1 | 5000 销售| 4 | 4800 (10 行)
并复制粘贴使用窗口函数的第一个语句:
SELECT depname、empno、salary、avg(salary) OVER (PARTITION BY depname) FROM empsalary;
但是,我收到以下错误消息:
错误:“OVER”处或附近的语法错误
第 1 行:选择 depname、empno、salary、avg(salary) OVER (PARTITION B...
^
使用 OVER 子句的其他努力也没有奏效。我做错了什么?
谢谢。
版本信息:x86_64-pc-linux-gnu 上的 PostgreSQL 8.3.8,由 GCC cc (GCC) 4.2.4 (Ubuntu 4.2.4-1ubuntu3) 编译
有没有可能是你的版本不支持这个功能?
从3.5 开始。窗口函数您使用完全相同的函数
以下示例展示了如何将每个员工的工资与其部门的平均工资进行比较:
SELECT depname、empno、salary、avg(salary) OVER (PARTITION BY depname) FROM empsalary;
但它指出
PostgreSQL 8.4.1 文档
| 归档时间: |
|
| 查看次数: |
8638 次 |
| 最近记录: |