0

我可以编写一个执行查询的选择语句。但是,我正在寻找仅显示唯一值的“DepartmentID”列。

我试图在不同的地方同时使用“UNIQUE”和“DISTINCT”,但我没有成功。这是示例表数据:

输出显示所有“DepartmentID”条目,但我只想显示具有唯一值的条目。

4

1 回答 1

0

如果“唯一”值是指只有一名员工的部门,则使用聚合:

SELECT d.departmentid, d.departmentname, 
       MAX(e.FirstName || ' ' || e.LastName) AS Chair
FROM Employees e JOIN
     Departments d
     ON e.departmentid = d.departmentid 
GROUP BY d.departmentid, d.departmentname
HAVING COUNT(*) = 1
ORDER BY d.departmentid;

编辑:

根据您更新的问题,您根本不需要聚合。只是正确的JOIN条件:

SELECT d.departmentid, d.departmentname, 
       (e.FirstName || ' ' || e.LastName) AS Chair
FROM Employees e JOIN
     Departments d
     ON e.employeeid = d.departmentchair 
ORDER BY d.departmentid;
于 2019-10-08T11:29:38.120 回答