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

基于给定数据库表结构,编写SQL查询获取有2笔及以上订单的销售员姓名

解决方案:找出拥有两笔或以上订单的销售员姓名

要搞定这个需求,核心思路就是统计每个销售员的订单数量,再筛选出订单数≥2的人。这里给你两种常用的实现方式,按需选择就行:

方法一:关联表后分组统计

这种方式直接把销售员表和订单表关联起来,分组后统计订单数,逻辑比较直观:

SELECT s.name
FROM salesperson s
JOIN `order` o ON s.sid = o.sid
GROUP BY s.sid, s.name
HAVING COUNT(o.oid) >= 2;

代码说明:

  • 用JOIN通过sid把salesperson和order表关联,确保每个销售员的订单都能对应上个人信息。
  • GROUP BY s.sid, s.name按销售员ID和姓名分组(用sid分组是为了避免同名销售员的统计误差,毕竟姓名可能重复,但sid是唯一标识)。
  • HAVING COUNT(o.oid) >= 2筛选出订单数≥2的分组,统计oid(订单主键)的数量能准确反映真实订单数,避免重复订单的干扰。

方法二:子查询筛选符合条件的销售员ID

如果不想直接关联表,也可以先通过子查询找出符合订单数要求的销售员ID,再查询对应姓名:

SELECT name
FROM salesperson
WHERE sid IN (
    SELECT sid
    FROM `order`
    GROUP BY sid
    HAVING COUNT(oid) >= 2
);

代码说明:

  • 子查询先对order表按sid分组,统计每个销售员的订单数,筛选出订单数≥2的sid列表。
  • 外层查询用IN关键字,从salesperson表中取出这些sid对应的销售员姓名。

⚠️ 注意:order是SQL的保留关键字,所以引用这个表名时必须用反引号(`)包裹,不然会触发语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:28:55