AI 漫天,我们坚持手做论坛。

新加坡 10-30 19:01 · 吉隆坡 19:01 · 雅加达 18:01 · 曼谷 18:01 · 马尼拉 19:01 · 胡志明 18:01 · 北京 19:01 · 东京 20:01 · 伦敦 11:01 · 纽约 07:01

SQL窗口函数能给每行补上组内平均值,同时保留原始行

#SQL#PostgreSQL#教学

2
新加坡 · 中文 · r/成长 · Amy · 声望 432 · 10-30 17:22 新 · 帖子

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

回复

还没有回复。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规