七叶笔记 » 数据库 » PostgreSQL数据库中窗口函数的语法与使用

PostgreSQL数据库中窗口函数的语法与使用

emp_id dep_name salary 7 develop 4200 8 develop 6000 9 develop 4500 10 develop 5200 11 develop 5200 2 personnel 3900 5 personnel 3500 1 sales 5000 3 sales 4800 4 sales 4800

如果要将每位员工与其部门的平均工资进行对比, 需要这样的结果:

emp_id dep_name salary avg 7 develop 4200 5020 8 develop 6000 5020 9 develop 4500 5020 10 develop 5200 5020 11 develop 5200 5020 2 personnel 3900 3700 5 personnel 3500 3700 1 sales 5000 4866.66666666667 3 sales 4800 4866.66666666667 4 sales 4800 4866.66666666667

如果不用窗口函数来查询, 则比较复杂, 当然也能做到, 语句如下:

如果使用窗口函数进行查询, 则很容易做到, sql 语句如下:

但是如果要查询随着员工的增加, 各部门平均工资的变化, 如下表所示的结果, 不用窗口函数查询的话就很难做到了。

emp_id dep_name salary avg 7 develop 4200 4200 8 develop 6000 5100 9 develop 4500 4900 10 develop 5200 4975 11 develop 5200 5020 2 personnel 3900 3900 5 personnel 3500 3700 1 sales 5000 5000 3 sales 4800 4900 4 sales 4800 4866.66666666667

如果使用窗口函数, 依然可以轻松完成, 语句如下:

可见, 窗口函数在需要对查询结果中的相关行进行计算时有很大的优势。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对七叶笔记的支持。

相关文章