каким должен быть вывод этого запроса - PullRequest
0 голосов
/ 08 июня 2019

Отображение идентификатора продавца, имени продавца и местоположения тех продавцов, которые находятся в одном месте.

Я использовал самостоятельное соединение для его решения

select s.sid, s.sname, s.location 
from salesman s 
inner join salesman ss on s.location = ss.location 
where s.location=ss.location
Salesman  Table

SID SNAME   LOCATION
1   Peter   London
2   Michael Paris
3   John    Mumbai
4   Harry   Chicago
5   Kevin   London
6   Alex    Chicago

Ожидаемый результат

Expected Result
SID SNAME   LOCATION
5   Kevin   London
6   Alex    Chicago
1   Peter   London
4   Harry   Chicago

Ответы [ 3 ]

0 голосов
/ 08 июня 2019

С EXISTS:

select s.*
from salesman s
where exists (
  select 1
  from salesman
  where sid <> s.sid and location = s.location
) 
0 голосов
/ 08 июня 2019

Я предположил, что вы не особенно относитесь к последовательности, которую вы показали в ожидаемом результате, и использовали соединение, которое намного быстрее.

select s.sid, s.sname, s.location 
from salesman s 
inner join (
  select location from salesman group by location having count(*) >1
) ss on s.location = ss.location 
0 голосов
/ 08 июня 2019

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

select *
from salesman
where location in (
  select location
  from salesman s
  group by location
  having count(*) > 1 
)
...