Sql 查询以获取匹配和不匹配记录的计数

Sql query to get count of matched and not matched records

请告诉我如何在以下情况下实现此目的

我有一个 table 列

Table一个

EmpId   Name  Contact
---------------------
100     AA    xxxxx
101     BB    yyyyy
102     rr    zzzzz
103     jj    1234
104     GG    6789

Table B

Id EmpId  Product
------------------
1  100     Sample1
2  100     Sample2
3  101     Sample1
4  103     Sample4

我需要从 TableA 中获取 TableB 中存在的列数(不同)并且不存在于 TableB 中匹配 EmpId

我尝试了以下方法

SELECT count(*) 
FROM Table A ta
WHERE ta.EmpId NOT IN (SELECT DISTINCT(tb.EmpId) 
                       FROM Table B tb) 

我正在统计哪些行不存在。

如何编写单个查询来获取所有匹配和不匹配行的计数?

期望的输出:

Matched NotMatched
------------------
3         2

对聚合使用左连接:

SELECT
    COUNT(DISTINCT b.EmpId) AS Matched,
    COUNT(CASE WHEN b.EmpId IS NULL THEN 1 END) AS NotMatched
FROM TableA a
LEFT JOIN TableB b
    ON b.EmpId = a.EmpId;