Посчитать количество уникальных записей столбца для комбинации двух столбцов? - PullRequest
0 голосов
/ 06 мая 2019

http://sqlfiddle.com/#!18/caa9f/4

У меня есть таблица Employee с тремя столбцами (EmpID, DateID, SourceID). В таблице могут быть повторяющиеся записи. Мне нужно добавить еще одну строку, скажем SourceCount, чтобы подсчитать количество уникальных источников для уникальной комбинации DateID и EmployeeID. Таблица должна оставаться неизменной, но должен быть добавлен новый столбец, который показывает, сколько существует уникальных источников для каждой комбинации dateid и empid. Пример первой строки: (1,2,4,1), второй строки: (1,2,4,1), четвертой строки (3,2,7,2) и т. Д.

Это то, что я пробовал.

select EmpID,
       DateID,
       SourceID,
       Rank() over ( partition by DateID, EmpID,SOurceID order by SourceID ) SourceCount     
 from Employee

Ответы [ 2 ]

0 голосов
/ 06 мая 2019

Вы можете использовать CROSS APPLY и COUNT:

SELECT *
FROM Employee e
CROSS APPLY (
  SELECT
    SourceCount = COUNT(DISTINCT SourceID)
  FROM Employee e2
  WHERE
    e2.EmpID = e.EmpID
    AND e2.DateID = e.DateID
) t
0 голосов
/ 06 мая 2019

Я думаю, что это простой запрос с подсчетом:

select distinct EmpID, DateID,
count(distinct  SourceID)
from Employee
group by EmpID,DateID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...