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

如何修改SQL语句,筛选出销售记录超10次的男性员工姓名

解决方法:查询符合条件的男性员工姓名

直接修改你找到的SQL语句,补充性别过滤条件并调整次数阈值即可,以下是两种可行的写法:

写法一:主查询中添加性别过滤

SELECT s.firstName, s.lastName
FROM Staff s
INNER JOIN (
    SELECT staffNumber
    FROM StaffSoldVehicle
    GROUP BY staffNumber
    HAVING COUNT(*) > 10  -- 调整为需求的"超过10次"
) sv ON s.staffNumber = sv.staffNumber
WHERE s.gender = 'm';  -- 添加男性员工过滤条件

写法二:先过滤Staff表再关联

SELECT s.firstName, s.lastName
FROM (
    -- 先筛选出所有男性员工
    SELECT staffNumber, firstName, lastName
    FROM Staff
    WHERE gender = 'm'
) s
INNER JOIN (
    -- 统计销售次数超过10次的员工编号
    SELECT staffNumber
    FROM StaffSoldVehicle
    GROUP BY staffNumber
    HAVING COUNT(*) > 10
) sv ON s.staffNumber = sv.staffNumber;

关键修改点说明:

  • 把原SQL中HAVING COUNT(staffNumber) > 1改为COUNT(*) > 10,匹配需求里"出现次数超过10次"的要求;COUNT(*)在这里和COUNT(staffNumber)效果一致,写法更简洁。
  • 移除了子查询里的DISTINCT,因为GROUP BY staffNumber已经确保每个员工编号只返回一次,DISTINCT属于冗余操作。
  • 通过WHERE s.gender = 'm'(或提前过滤Staff表)实现男性员工的筛选,确保结果只包含符合性别要求的员工。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:45:56