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

HR.EMPLOYEES表嵌套SQL查询报错:如何筛选工龄低于平均值的员工?

问题修正:查询工龄低于平均值的员工名单

你的SQL语句存在两个明显错误,导致执行报错:

  • 表名拼写错误:把 hr.employees 误写成了 hr.empolyees
  • 子查询的聚合函数括号不匹配:avg(MONTHS_BETWEEN(sysdate, hire_date) 缺少闭合的右括号,同时整个子查询的括号也需要正确闭合

修正后的基础版本SQL如下:

SELECT first_name, last_name
FROM hr.employees
WHERE MONTHS_BETWEEN(SYSDATE, hire_date) < (
    SELECT AVG(MONTHS_BETWEEN(SYSDATE, hire_date))
    FROM hr.employees
);

如果想优化性能,避免重复计算工龄平均值,可以用CTE(公共表表达式)先计算一次平均工龄,再关联查询:

WITH avg_employee_tenure AS (
    SELECT AVG(MONTHS_BETWEEN(SYSDATE, hire_date)) AS average_months
    FROM hr.employees
)
SELECT e.first_name, e.last_name
FROM hr.employees e, avg_employee_tenure t
WHERE MONTHS_BETWEEN(SYSDATE, e.hire_date) < t.average_months;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 19:31:16