SQL скрывает дубликаты адресов в запросе - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь создать список рассылки в SQL Server 2008, где мы показываем все адреса для сотрудников, однако многие сотрудники имеют один и тот же адрес, и мы не хотим, чтобы в списке были повторяющиеся адреса.Мой текущий запрос не работает.

Как скрыть строки, содержащие повторяющиеся адреса?

Пока это мой запрос:

SELECT
  empid, 'empfirstname + emplastname', 
  empaddress, empaddress2, empzipcode, empcity,empstate,empcountry
from emp
group by empaddress

Это то, что яна данный момент вижу:

Это то, что я хочу:

enter image description here

Ответы [ 2 ]

1 голос
/ 20 июня 2019

Вы можете использовать аналитическую функцию окна row_number(), которая работает в большинстве систем управления базами данных (поскольку мы еще не знаем вашу)

select *
from
(
select
  name, address, country, ID, -- due to the data on the picture
  row_number() over (partition by address order by id) as rn 
from emp
) q
where rn = 1
0 голосов
/ 20 июня 2019

Использовать NOT EXISTS:

select
  e.empid, e.empfirstname + e.emplastname, 
  e.empaddress, e.empaddress2, e.empzipcode,
  e.empcity, e.empstate, e.empcountry
from emp e
where not exists (
  select 1 from emp
  where id < e.id and empaddress = e.empaddress and empzipcode = e.empzipcode
)

Я думаю, empaddress и empzipcode достаточно для определения отдельного адреса.

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