База ответов ИНТУИТ

Введение в Oracle SQL

<<- Назад к вопросам

Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
IDНомер сотрудникаPRIMARY KEY
LAST_NAMEФамилияNOT NULL
TITLEДолжностьNOT NULL
MANAGER_IDНомер начальника
SALARYЗарплатаNOT NULL
START_DATEДата начала работыNOT NULL
Рекурсивные запросы SQL Oracle 11g:

(Отметьте один правильный вариант ответа.)

Варианты ответа
WITH subordination (id, job) AS (SELECT id, title FROM s_emp WHERE title = 'President'UNION ALLSELECT s.job||' -> '||e.titleFROM s_emp e INNER JOIN subordination s             ON s.id = e.manager_id)SELECT job FROM subordination;
(Верный ответ)
SELECT LEVEL, RPAD(last_name, LEVEL,'_') "Level of subordination"FROM s_empCONNECT BY PRIOR id = manager_idSTART WITH manager_id IS NULLORDER SIBLINGS BY last_name;
SELECT w.last_name||', '||w.title||' works for '||m.last_name||', '||m.title "Level of subordination"FROM s_emp w INNER JOIN s_emp m             ON m.id = w.manager_idORDER m.title;
DECLARE v_title s_emp.title%TYPE; v_id s_emp.id%TYPE;v_job VARCHAR2(200)BEGINSELECT id, title INTO v_id, v_title FROM s_emp WHERE title = 'President';FOR i IN (SELECT * FROM s_emp WHERE manager_id = v_id) LOOP    v_job := v_job||' -> '||i.title;    DBMS_OUTPUT.PUT_LINE(v_job);END LOOP; END;
Похожие вопросы
Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
IDНомер сотрудникаPRIMARY KEY
LAST_NAMEФамилияNOT NULL
TITLEДолжностьNOT NULL
MANAGER_IDНомер начальника
SALARYЗарплатаNOT NULL
START_DATEДата начала работыNOT NULL
Запросы SQL Oracle 11g, НЕ выполняющие РЕКУРСИВНОЕ построение структуры подчиненности сотрудников компании:
Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
IDНомер сотрудникаPRIMARY KEY
LAST_NAMEФамилияNOT NULL
TITLEДолжностьNOT NULL
MANAGER_IDНомер начальника
SALARYЗарплатаNOT NULL
START_DATEДата начала работыNOT NULL
Запросы SQL Oracle 11g, выполняющие построение иерархической структуры подчиненности сотрудников компании, но не являющиеся рекурсивными:
Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
IDНомер сотрудникаPRIMARY KEY
LAST_NAMEФамилияNOT NULL
TITLEДолжностьNOT NULL
MANAGER_IDНомер начальника
SALARYЗарплатаNOT NULL
START_DATEДата начала работыNOT NULL
Выборку 10 самых низкооплачиваемых сотрудников выполняет запрос:
Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
IDНомер сотрудникаPRIMARY KEY
LAST_NAMEФамилияNOT NULL
TITLEДолжностьNOT NULL
MANAGER_IDНомер начальника
SALARYЗарплатаNOT NULL
START_DATEДата начала работыNOT NULL
Запрос SQL:
SELECT RPAD(last_name, LEVEL,'_') FROM s_empCONNECT BY PRIOR id = manager_idSTART WITH manager_id IS NULL;
Команда выполняет построение ...
Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
IDНомер сотрудникаPRIMARY KEY
LAST_NAMEФамилияNOT NULL
TITLEДолжностьNOT NULL
MANAGER_IDНомер начальника
SALARYЗарплатаNOT NULL
START_DATEДата начала работыNOT NULL
Выборку трех сотрудников, которые приняты на работу последними, выполняет запрос:
Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
IDНомер сотрудникаPRIMARY KEY
LAST_NAMEФамилияNOT NULL
TITLEДолжностьNOT NULL
MANAGER_IDНомер начальника
SALARYЗарплатаNOT NULL
START_DATEДата начала работыNOT NULL
Запрос SQL:
SELECT last_name, title, start_date,AVG(salary) OVER (ORDER BY start_date RANGE BETWEEN INTERVAL '3' MONTH PRECEDING AND CURRENT ROW) avg_sal FROM s_emp;
Результат действия запроса - вывод фамилии, должности, даты начала работы ...
Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
IDНомер сотрудникаPRIMARY KEY
LAST_NAMEФамилияNOT NULL
TITLEДолжностьNOT NULL
MANAGER_IDНомер начальника
SALARYЗарплатаNOT NULL
START_DATEДата начала работыNOT NULL
Запросы SQL:
  • SELECT title, AVG(salary) avg_sal FROM s_empGROUP BY title;
  • SELECT last_name, title, AVG(salary) OVER (PARTITION BY title) avg_sal FROM s_emp;
  • Различие в результатах действия запросов:
    Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
    IDНомер сотрудникаPRIMARY KEY
    LAST_NAMEФамилияNOT NULL
    TITLEДолжностьNOT NULL
    MANAGER_IDНомер начальника
    SALARYЗарплатаNOT NULL
    START_DATEДата начала работыNOT NULL
    Запрос SQL:
    SELECT last_name, SUM(salary) OVER() sum_sal FROM s_emp;
    Во избежание ошибки выполнения запроса для получения списка фамилий сотрудников и общей суммы зарплаты, в команду следует добавить:
    Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
    IDНомер сотрудникаPRIMARY KEY
    LAST_NAMEФамилияNOT NULL
    TITLEДолжностьNOT NULL
    MANAGER_IDНомер начальника
    SALARYЗарплатаNOT NULL
    START_DATEДата начала работыNOT NULL
    Необходимо получить информацию о сотруднике, который получает наименьшую зарплату. Запрос, который выполняет поставленную задачу:
    Дана таблица S_EMP, в которой содержится информация о сотрудниках компании:
    IDНомер сотрудникаPRIMARY KEY
    LAST_NAMEФамилияNOT NULL
    TITLEДолжностьNOT NULL
    MANAGER_IDНомер начальника
    SALARYЗарплатаNOT NULL
    START_DATEДата начала работыNOT NULL
    Необходимо получить фамилию, номер отдела, должность сотрудника с указанием суммарной зарплаты для каждой должности в каждом отделе нарастающим итогом. Решением поставленной задачи является вариант: