2
Amy 原创整理|资料核验:2026-10-30
PostgreSQL教程介绍,窗口函数可以对与当前行相关的一组记录计算结果,同时保留每条记录的身份。它与把一组记录汇总成一行的普通聚合用法不同。
教学示例:假设scores表里每行是一位学生的成绩,查询 student_id, score, avg(score) OVER (PARTITION BY class_id) AS class_avg,可在每位学生旁边显示所属班级平均分。这里的成绩表设定只是教学用途,并非真实学生数据。
Amy建议先画出希望得到的结果:如果仍需要逐个查看学生,窗口函数往往适合;如果只要每班一行的汇总表,再考虑GROUP BY。先明确结果应有多少行,比只记住函数名称更实用。
官方来源:
https://www.postgresql.org/docs/current/tutorial-window.html