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

MySQL/MariaDB查询:按平均佣金率降序排列销售员

问题原因

你编写的SQL使用了聚合函数AVG()计算平均佣金率,但没有添加GROUP BY子句对销售员进行分组,数据库会将所有匹配到的销售记录合并为一行计算全量平均佣金率,无法得到每个销售员对应的单独结果。

正确写法

SELECT s.name, AVG(p.commissionRate) AS avg_commission_rate
FROM Salesman s
INNER JOIN Purchases p 
ON s.empId = p.empId
GROUP BY s.empId, s.name
ORDER BY avg_commission_rate DESC;

说明

  • 这里选择显式用INNER JOIN+ON指定关联条件,比NATURAL JOIN更稳妥,避免后续表结构新增同名字段时关联逻辑出错
  • 分组时同时指定empId和name,是为了避免存在同名销售员时,不同人的销售记录被错误合并计算
  • 如果你需要展示所有销售员(包括没有成单记录、平均佣金率为NULL的),将INNER JOIN替换为LEFT JOIN即可
  • 最终运行结果会按平均佣金率从高到低排序,符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:09:04