Oracle 甲骨文作业-我被难住了

Oracle 甲骨文作业-我被难住了,oracle,oracle11g,Oracle,Oracle11g,这是我这一年甲骨文作业的最后一个问题,我甚至不知道从哪里开始。这一定是一个糟糕的大脑日 有人能帮我吗 使用WITH子句编写SELECT语句,列出最高工资超过整个公司最高工资一半的职位的职位名称。将子查询命名为MAX\u CALC\u SAL。命名结果作业标题和作业总计中的列,并按降序对作业总计中的结果进行排序。 提示:检查作业表。您需要加入JOBS和EMPLOYEES以显示职务标题 谢谢 这就是我目前所拥有的 WITH MAX_CALC_SAL AS ( SELECT e.salary

这是我这一年甲骨文作业的最后一个问题,我甚至不知道从哪里开始。这一定是一个糟糕的大脑日

有人能帮我吗

使用WITH子句编写SELECT语句,列出最高工资超过整个公司最高工资一半的职位的职位名称。将子查询命名为MAX\u CALC\u SAL。命名结果作业标题和作业总计中的列,并按降序对作业总计中的结果进行排序。 提示:检查作业表。您需要加入JOBS和EMPLOYEES以显示职务标题

谢谢

这就是我目前所拥有的

WITH MAX_CALC_SAL  AS (
    SELECT e.salary, SUM(e.salary) AS tot_salary
    FROM   employees e JOIN jobs j
    ON     e.job_id = j.job_title
    GROUP BY j.job_title
),
avg_cost AS (
    SELECT SUM(e.salary)/COUNT(*) AS avg_salary
    FROM   e.employee
)
SELECT * 
FROM   e.employee 
WHERE  avg_salary > (SELECT max_salary / 2 
                     FROM j.jobs)
ORDER BY job_total

使用with子句定义的名称不会自动出现在最终查询中。它们的工作方式类似于派生表,因此您必须从中进行选择,或与之联接,以获取它们的数据

WITH my_with_table AS (SELECT 9 AS X FROM DUAL)
SELECT X FROM my_with_table;

您是否正在寻找类似于:

WITH max_calc_sal
  AS (SELECT job_id,
             j.job_title,
             MAX(e.salary) AS job_total
        FROM jobs j
       INNER JOIN employees e
       USING (job_id)
       GROUP BY job_id,
                j.job_title)
SELECT job_title,
       job_total
  FROM max_calc_sal
 WHERE job_total > (0.5 * SELECT MAX(job_total)
                            FROM max_calc_sal)
 ORDER BY job_total DESC;

问题的哪些部分让你困惑?到目前为止,你得到了什么?更重要的是:问题出在哪里?@APC我不确定我所做的是否正确。