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

如何编写SQL查询获取各活动(AName)对应的最高志愿者积分?

获取每个活动的志愿者最高积分

嘿,针对你要查询每个活动对应志愿者最高积分的需求,结合你提供的表结构,我整理了两种实用的SQL方案,你可以根据实际需求选择:

方案一:仅获取活动名称与对应最高积分

如果只需要知道每个活动的最高积分是多少,这条简洁的SQL就能搞定:

SELECT AName, MAX(POINTS) AS 最高积分
FROM Participate_In
GROUP BY AName;

执行后会得到这样的结果:

AName最高积分
A10
B11

方案二:获取最高积分志愿者的完整信息

要是你还想知道是哪个志愿者拿到了该活动的最高积分(注意:如果有多个志愿者积分相同且都是该活动最高,会返回所有符合条件的记录),可以用子查询关联的方式:

SELECT p.*
FROM Participate_In p
INNER JOIN (
    SELECT AName, MAX(POINTS) AS max_points
    FROM Participate_In
    GROUP BY AName
) AS max_p ON p.AName = max_p.AName AND p.POINTS = max_p.max_points;

这条语句会返回每个活动中积分最高的志愿者的全部信息,结果如下:

V_IDEnamePOINTSAName
1001Name110A
1003Name311B

小解释一下

  • GROUP BY AName是把表中的数据按活动名称分组,保证每个活动只生成一条汇总结果
  • MAX(POINTS)专门用来计算每个分组里的积分最大值
  • 第二种方案先通过子查询找出每个活动的最高积分,再和原表关联匹配,就能拿到对应的志愿者完整信息,适合需要详细记录的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:30:55