Подходят ли следующие ответы для отбора? - PullRequest
0 голосов
/ 08 апреля 2020

Так что на самом деле это касается какого-то интервью, которое мне задавали. Связанный с Oracle Pl / sql.

Ques1) Допустим, у меня есть таблица сотрудников, я должен получить имя менеджера для каждого сотрудника?

Empid    name manageridsal

1        a     3       100
2        b     3       100
3        c     4       200
4        d     null    400

Так что я было написано:

 Select e1.*,e2.name as managername
 From table e1 join
 table e2 on
 e1.empid=e2.managerid

И второе - получить среднюю оценку менеджера и всех других сотрудников

 Select managerid, 
 Avg(sal) from table
 Group by managerid
 Union
 Select ,empid
 Avg(sal) from table
 Where empid not in
 (select managerid 
  From table) 
 Group by empid


   Empid        avg sal
   1                 100
   2                 100
   3                 200
   4                 300

Но, с точки зрения интервьюера, у меня появилась довольно хорошая идея, что я Дин встретил то, что он на самом деле ожидал, даже я думал, что где-то то же самое. Просто хочу знать, ответственны ли эти ответы.

1 Ответ

1 голос
/ 08 апреля 2020

В первом запросе вам нужно переключить столбцы в условии соединения: в противном случае вы приносите менеджеров текущего сотрудника вместо их manager .

select e1.*,e2.name as managername
from table e1 
left join table e2 on e2.empid = e1.managerid

Когда речь идет о втором вопросе: я не уверен, что вы подразумеваете под средняя (саль) менеджера и всех других сотрудников . Возможно, вам придется предоставить пример данных для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...