Показать каждое уникальное имя с каждым уникальным идентификатором - раздел над? - PullRequest
0 голосов
/ 26 января 2020

Ниже показано, как выглядят мои данные:

Job_ID    Employee
1         Tim
1         John
1         Tim
2         Dave

, и я хочу вернуться:

Job_ID    Employee
1         Tim
1         John
2         Dave

, где идентификатор задания 1 теперь имеет две записи, потому что есть две сотрудники на работе.

Я надеялся, что это может быть достигнуто с помощью PARTITION BY:

SELECT job_id, employee OVER (PARTITION BY employee)
   from data

Но я думаю, что я неправильно понимаю, как использовать его в этом случае?

Ответы [ 2 ]

2 голосов
/ 26 января 2020

Простое решение:

select distinct job_id, employee 
from emp_job 
order by job_id, employee ;

Разделение:

select d1.job_id, d1.employee 
from 
  (SELECT job_id, employee, 
          row_number() OVER (partition by job_id, employee 
                             order by employee) as rnk 
   from data
)d1
where d1.rnk = 1

Разделение в Teradata:

SELECT job_id, employee 
from emp_job 
qualify row_number() OVER (partition by job_id, employee 
                           order by data) = 1;
2 голосов
/ 26 января 2020

Вы можете просто использовать GROUP BY:

SELECT job_id, employee
FROM data
GROUP BY job_id, employee

Или даже просто SELECT DISTINCT:

SELECT DISTINCT job_id, employee
FROM data
...