Использование подзапросов в других предложениях команд sql
Пример
использования подзапроса в предложении
FROM:
Выбрать три региона, в которых больше
всего фирм клиентов:
SELECT
s.*, ROWNUM region
FROM
(SELECT region_id, COUNT(*)
FROM
s_customer
GROUP
BY region_id
ORDER
BY 2 DESC) s
WHERE
ROWNUM <= 3;
Результат:
REGION_ID COUNT(*) REGION
--------- --------- ---------
1 4 1
5 4 2
4 3 3
Пример
использования подзапроса в предложении
HAVING:
Найти должность с самой низкой средней
заработной платой:
SELECT
title, AVG(salary)
FROM
s_emp
GROUP
BY title
HAVING
AVG(salary)=(SELECT MIN(AVG(salary))
FROM
s_emp
GROUP
BY title);
Результат:
TITLE AVG(SALARY)
--------------- -----------
Stock
Clerk 949
Пример
использования подзапроса в предложении
SELECT:
Для каждого служащего получить его
номер, номер отдела, в котором он работает,
зарплату и процент, который составляет
его зарплата в суммарной зарплате его
отдела:
SELECT
id, dept_id, salary, salary/(SELECT SUM(salary)
FROM
s_emp
WHERE
dept_id=e.dept_id)*100 "%"
FROM
s_emp e
ORDER
BY 2;
Результат:
ID DEPT_ID SALARY %
----- --------- --------- ---------
4 10 1450 100
3 31 1400 50
11 31 1400 50
12 32 1490 100
13 33 1515 100
14 34 1525 65,732759
23 34 795 34,267241
15 35 1450 100
2 41 1450 29,058116
…
25
rows selected.
9
Л
екция
9. Язык SQL. Подзапросы.