oralce sql练习

单行子查询:

SELECT last_name,
       first_name,
       salary,
       round((SELECT AVG(salary) FROM employees)) avg_sql
  FROM employees
 WHERE last_name = 'King'
SELECT department_id, round(AVG(salary), 2) avg_sal
  FROM employees
 GROUP BY department_id
HAVING AVG(salary) > (SELECT AVG(salary) FROM employees)
 ORDER BY 2;

多列子查询:

SELECT last_name, first_name, department_id, salary
  FROM employees
 WHERE (department_id, salary) IN
       (SELECT department_id, MAX(salary)
          FROM employees
         GROUP BY department_id)
 ORDER BY department_id;
构建相关子查询:
SELECT employee_id, job_id
  FROM job_history h
 WHERE job_id IN (SELECT job_id FROM employees e WHERE e.job_id = h.job_id)
 ORDER BY 1;
SELECT employee_id, last_name, first_name
  FROM employees e
 WHERE EXISTS (SELECT 'ANY LITERAL WILL DO HIRE'
          FROM employees m
         WHERE e.employee_id = manager_id);


你可能感兴趣的:(sql)