Laz*_*ale 0 sql t-sql sql-server sql-server-2008-r2
我有这个问题:
SELECT [ScheduleId]
,[EventId]
,s.[SkillId]
,[ADEmployeeId]
,sk.[Description]
FROM [Schedule] s
INNER JOIN [Skills] sk
ON s.SkillId = sk.SkillId
WHERE EventId = 1
Run Code Online (Sandbox Code Playgroud)
这是输出:

我希望有另一个列可以说明每个描述有多少个可用位置(将计算具有相同描述的行),还有一个列将计算具有相同描述的行数有多少ADEmployeeID.
在图像示例中,另外两列应该包含如下数据:
1 | 1
3 | 1
1 | 0
3 | 1
3 | 1
你想要窗口功能:
SELECT [ScheduleId],[EventId], s.[SkillId], [ADEmployeeId], sk.[Description],
COUNT(*) OVER (PARTITION BY sk.Description) as col1,
COUNT(ADEmployeeId) OVER (PARTITION BY sk.Description) as col2
FROM [Schedule] s INNER JOIN
[Skills] sk
ON s.SkillId = sk.SkillId
WHERE EventId = 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
99 次 |
| 最近记录: |