首页 > 解决方案 > 不同的组以避免重复部门

问题描述

我有表1

Dept    Class
A        x1
A        x2
B        Y1
B        Y2

和表2

Dept    
A   
B   

如果它们是相同的部门(无论班级),我想加入两个表并按部门计数组,所以我会有

CountDept  Dept
   1        A
   1        B

避免表 1 上的重复部门的目标(甚至在表 1 的同一部门中有多个类)。

我尝试了不同但不起作用

select distinct count(t1.dept)countdept, t1.dept, t1.class
from table2 t2
join table1 t1 on t2.dept = t1.dept
group by t1.Dept, t1.class

标签: sqlsql-server

解决方案


看起来你根本不想加入。

正如 Gordon 在请求评论中所说,您似乎只想显示 table2.dept,每个“计数”为 1,这只是:

select 1 as count_dept, dept from table2;

如果您只想显示那些也存在于 table1 中的内容,请使用INor EXISTS

select 1 as count_dept, dept from table2 where dept in (select dept from table1);

或者,如果您也想“计数”零,请使用CASE WHEN

select 
  case when dept in (select dept from table1) then 1 else 0 end as count_dept,
  dept 
from table2;

推荐阅读