Sql 列出在同一部门工作的两名员工
在oracle SQL中,如何列出在同一部门工作的两名员工。。。我的员工表如下所示:Sql 列出在同一部门工作的两名员工,sql,database,oracle,Sql,Database,Oracle,在oracle SQL中,如何列出在同一部门工作的两名员工。。。我的员工表如下所示: employeeid department 101 2 102 2 103 3 104 3 105 4 您可以通过以下方式获取具有多个员工的部门中的所有员工: SELECT * FROM employees WHERE department IN ( SELECT department FR
employeeid department
101 2
102 2
103 3
104 3
105 4
您可以通过以下方式获取具有多个员工的部门中的所有员工:
SELECT * FROM employees
WHERE department IN
(
SELECT department
FROM employees
GROUP BY department
HAVING COUNT(*) > 1
)
或者使用LISTAGG
在列表中显示ID:
SELECT
department,
LISTAGG(employeeid, ', ') AS EmployeeList
FROM employees
GROUP BY department
HAVING COUNT(*) > 1
您可以通过以下方式获取具有多个员工的部门中的所有员工:
SELECT * FROM employees
WHERE department IN
(
SELECT department
FROM employees
GROUP BY department
HAVING COUNT(*) > 1
)
或者使用LISTAGG
在列表中显示ID:
SELECT
department,
LISTAGG(employeeid, ', ') AS EmployeeList
FROM employees
GROUP BY department
HAVING COUNT(*) > 1
如果您的表名为t,则可以通过自联接“列出”在同一部门工作的员工对,如下所示:
select t1.employeeid as employee1, t2.employeeid as employee2, department
from t t1 join t t2 using (department)
where t1.employeeid < t2.employeeid
如果您的表名为t,则可以通过自联接“列出”在同一部门工作的员工对,如下所示:
select t1.employeeid as employee1, t2.employeeid as employee2, department
from t t1 join t t2 using (department)
where t1.employeeid < t2.employeeid
您希望输出是什么样子的?请下次做你的工作,然后来诊断你的问题。这不是一个代码编写服务。也许这对你来说不是问题,但作为我对SQL的初学者,这是一个问题,所以如果你不想帮忙的话,请退后!您希望输出是什么样子的?请下次做你的工作,然后来诊断你的问题。这不是一个代码编写服务。也许这对你来说不是问题,但作为我对SQL的初学者,这是一个问题,所以如果你不想帮忙的话,请退后!这些“解决方案”与列出“在同一部门工作的一对(或多对)员工”有什么关系?@mathguy我没有像你那样直截了当地接受“对”。当然,您的自助加入答案是一个可能的解决方案,但如果一个部门中有两个以上的员工,您将在每个部门中得到每个“配对”的组合,而这可能不是OP想要的。这两个“解决方案”中的任何一个与列出“在同一部门工作的员工配对”有什么关系?@mathguy我没有选择“配对”就像你做的那样。当然,您的自连接答案是一个可能的解决方案,但是如果一个部门中有两个以上的人,那么您将在每个部门中得到每个“配对”的组合,而这可能不是OP想要的。