You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL:如何修改用户最近5条分数平均查询,关联外部表返回用户名?

修改查询关联用户表返回用户名

要让原查询返回用户名,只需要通过user_id关联用户表(假设用户表为mg.users,包含user_id和username字段),调整后的SQL如下:

SELECT u.user_id, u.username, round(avg(x.score)::numeric, 2) AS sc_avg
FROM  (
   SELECT user_id, score
        , row_number() OVER (PARTITION BY user_id ORDER BY date DESC) AS rn
   FROM   mg.scores
   WHERE  score IS NOT NULL
   ) AS x
JOIN mg.users u ON x.user_id = u.user_id
WHERE  x.rn <= 5
GROUP  BY u.user_id, u.username;

关键修改点:

  • 子查询中不再用SELECT *,只保留计算所需的user_id、score和行号rn,避免不必要的数据加载
  • 通过JOIN语句关联用户表,用user_id作为关联字段
  • GROUP BY子句中加入username,因为它是查询结果中的非聚合字段(如果用户表的user_id是主键,仅GROUP BYu.user_id也可正常运行,PostgreSQL会自动识别主键关联的唯一字段)

如果你的用户表名称或字段名不同(比如用户表叫public.user_info,用户名字段叫name),替换成对应的名称即可。

内容的提问来源于stack exchange,提问作者Col

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 06:03:17