Оракул домашнее задание - я в тупике - PullRequest
0 голосов
/ 03 апреля 2012

Это последний вопрос к моей домашней задаче Oracle за год, и я не могу понять даже, с чего начать. Должно быть, это плохой мозговой день.

Может ли кто-нибудь помочь мне с этим?

Используя предложение WITH, напишите оператор SELECT, чтобы перечислить job_title тех заданий, чья максимальная зарплата превышает половину максимальной зарплаты всей компании.Назовите свой подзапрос MAX_CALC_SAL.Назовите столбцы в результате JOB_TITLE и JOB_TOTAL и отсортируйте результат по JOB_TOTAL в порядке убывания.Подсказка: изучите таблицу заданий.Вам нужно будет присоединиться к JOBS и СОТРУДНИКАМ, чтобы отобразить название вакансии.

Спасибо!

Это то, что у меня есть до сих пор ...

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

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Вы ищете что-то вроде:

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;
0 голосов
/ 03 апреля 2012

Имена, определенные в предложении WITH, не будут автоматически присутствовать в вашем окончательном запросе. Они работают как производные таблицы, поэтому вам нужно выбирать из них или присоединяться к ним, чтобы получить их данные.

WITH my_with_table AS (SELECT 9 AS X FROM DUAL)
SELECT X FROM my_with_table;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...