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
答案 0 :(得分:0)
我认为这只是一个简单的计数不同查询:
select distinct EmpID, DateID,
count(distinct SourceID)
from Employee
group by EmpID,DateID
答案 1 :(得分:0)
您可以使用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