在没有临时表的SQL Server中需要不同的组合计数



我使用的是MS SQL Server。

我有一张员工表,我需要重新安排一些员工,让他们一起工作。基本上,我想换我的部门,它在一个地方是专家。因此,如果IT部门有java专家在不同的地方工作,他们需要被购买到一个地方

我需要知道一个部门在2个地点有相同专家的名单

我的员工表有4列

  • ID
  • 部门
  • 专业化
  • 位置
专家Java Lang伦敦>印度>印度审计伦敦伦敦
Id 部门地点
100 IT Java Lang 伦敦
110 IT
125 IT Java Lang 巴黎
128 IT Java Lang 巴黎
130 IT Java Lang 巴黎
135 ITPython
140 ITPython
145 账户伦敦
150 账户 审计
150 账户 审计

您可以使用此的窗口计数

SELECT
t.Dept,
t.Specialist,
t.Location
FROM (
SELECT
t.Dept,
t.Specialist,
t.Location,
COUNT(*) OVER (PARTITION BY t.Dept, t.Specialist) count
FROM YourTable t
GROUP BY
t.Dept,
t.Specialist,
t.Location
) t
WHERE t.count > 1;

db<gt;小提琴

最新更新