错误:语法错误在“OVER”或附近

时间:2009-12-09 09:41:30

标签: sql postgresql

我是SQL语言和PostgreSQL的新手。我熟悉了这门语言并且正在学习PostgreSQL教程,直到我遇到关于窗口函数的一章(link text。我创建了完全相同的表'empsalary',如示例所示:

wtouw=# SELECT * FROM empsalary;
  depname  | empno | salary 
-----------+-------+--------
 develop   |    11 |   5200
 develop   |     7 |   4200
 develop   |     9 |   4500
 develop   |     8 |   6000
 develop   |    10 |   5200
 personnel |     5 |   3500
 personnel |     2 |   3900
 sales     |     3 |   4800
 sales     |     1 |   5000
 sales     |     4 |   4800
(10 rows)

并复制粘贴使用窗口函数的第一个语句:

SELECT depname, empno, salary, avg(salary) OVER (PARTITION BY depname) FROM empsalary;

但是,我收到以下错误消息:

ERROR:  syntax error at or near "OVER"
LINE 1: SELECT 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)编译

1 个答案:

答案 0 :(得分:4)

您的版本是否可能不支持此功能?

3.5. Window Functions你使用完全相同的功能

  

这是一个展示如何操作的示例   比较每个员工的工资   他或她的平均工资   部门:

     

SELECT depname,empno,salary,   平均(工资)超过(PARTITION BY   depname)FROM empsalary;

但是它说明了

  

PostgreSQL 8.4.1文档